File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes XML and Related Technologies and the fly likes XML Transformation Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Make it so: Java DB Connections & Transactions this week in the JDBC forum!
JavaRanch » Java Forums » Engineering » XML and Related Technologies
Bookmark "XML Transformation" Watch "XML Transformation" New topic

XML Transformation

Monika Sa

Joined: Oct 24, 2011
Posts: 1
I am new to ranch and I apologize if I am not posting this topic in the right thread.

I have been looking at this for sometime now and need your help. My problem is why is data being output outside the xml elements too. I am attaching the source, xsl and output....Sorry couldn't attach, so pasting. Please let me know if you need something else



Rob Spoor

Joined: Oct 27, 2005
Posts: 20202

I'll move this thread to our XML forum.

How To Ask Questions How To Answer Questions
Paul Clapham

Joined: Oct 14, 2005
Posts: 19896

Monika Sa wrote:My problem is why is data being output outside the xml elements too.

Chances are, that's because they are being output by one of the built-in template rules. I only see a named template in what you posted and I don't see anything which would call it,
so it's pretty likely that everything you see in your output came from the built-in template.
g tsuji
Ranch Hand

Joined: Jan 18, 2011
Posts: 619
Automatic xslt generation is a double-edged swore. It can backfire terribly at times if you don't know many contingent factors in play that might need user-intervention. That software can put up parameter with dreadful select="/.." that I would never, for instance. But that is not the problem, they can do that if it amuses them.

This is the problem. In all your (named) templates, where-ever there appears this block:
<xsl:for-each select="$input/node()">
<xsl:if test="not(self::text())">
<xsl:if test="not(self::*)">
<xsl:value-of select="."></xsl:value-of>

Replace the block by this line.

That would make xalan well-behaved. The necessity of it is in fact processor-dependent, too bad.

Edit note: code block seems having problem in display for this moment?!
I agree. Here's the link:
subject: XML Transformation
jQuery in Action, 3rd edition