[jdom-interest] Creating a pure text file using XSL
Jay Burgess
jburgess at delanotech.com
Thu Nov 8 13:07:36 PST 2001
I've asked this question on an XSL list, and now it's not clear to me
whether it's an XSL issue, or an issue with my use of JDOM. Here goes:
I've got the following code snippet in my .XSL file:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" indent="yes" omit-xml-declaration="yes" />
<xsl:param name="FILENAME"/>
<xsl:template match="page">
<xsl:choose>
<xsl:when test="$FILENAME != ''">
<p>http://YOURMACHINE/<xsl:value-of select="$FILENAME"/></p>
</xsl:when>
<xsl:otherwise>...
It outputs something like:
<p>http://YOURMACHINE/page1.html</p>
<p>http://YOURMACHINE/page2.html</p>
<p>http://YOURMACHINE/page3.html</p>
But what I really want is just a plain text file containing one URL string
per line, without the <p></p>, like:
http://YOURMACHINE/page1.html
http://YOURMACHINE/page2.html
http://YOURMACHINE/page3.html
(Again, these aren't HREF's. They're simply URL strings, with no XML/HTML
markup around them.)
Is this possible with XSL?
Here's the relevant Java code using JDOM, in case that's where I'm doing
something wrong:
JDOMSource source = new JDOMSource(new Document(element.detach()));
JDOMResult result = new JDOMResult();
XMLOutputter outputter = new XMLOutputter(" ", true);
outputter.setTextNormalize(true);
outputter.setOmitDeclaration(true);
outputter.setNewlines(false);
transformer.setParameter("FILENAME", fileName);
transformer.transform(source, result);
outputter.output(result.getDocument(), packageFile);
Finally, for reference, if I remove the <p></p> in my XSL file, I get a
stack trace, which starts off like:
[java] javax.xml.transform.TransformerException
[java] at
org.apache.xalan.transformer.TransformerImpl.transformNode(Tr
ansformerImpl.java:1151)
[java] at
org.apache.xalan.transformer.TransformerImpl.transform(Transf
ormerImpl.java:590)
[java] at
org.apache.xalan.transformer.TransformerImpl.transform(Transf
ormerImpl.java:1037)
[java] at
org.apache.xalan.transformer.TransformerImpl.transform(Transf
ormerImpl.java:1015)
[java] at XMLConfig.parse(Unknown Source)
[java] at XMLConfig.parse(Unknown Source)
[java] at XMLConfig.parse(Unknown Source)
[java] at XMLConfig.main(Unknown Source)
[java] ---------
[java] java.util.EmptyStackException
[java] at java.util.Stack.peek(Stack.java:82)
[java] at org.jdom.input.SAXHandler.characters(SAXHandler.java:483)
[java] at
org.xml.sax.helpers.XMLFilterImpl.characters(XMLFilterImpl.ja
va:614)
[java] at
org.apache.xalan.transformer.ResultTreeHandler.characters(Res
ultTreeHandler.java:471)
[java] at
org.apache.xalan.templates.ElemTextLiteral.execute(ElemTextLi
teral.java:256)
[java] at
org.apache.xalan.transformer.TransformerImpl.executeChildTemp
lates(TransformerImpl.java:2096)
[java] at
org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java
:164)
[java] at
org.apache.xalan.templates.ElemApplyTemplates.transformSelect
edNodes(ElemApplyTemplates.java:423)
[java] at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApp
lyTemplates.java:226)
[java] at
org.apache.xalan.transformer.TransformerImpl.executeChildTemp
lates(TransformerImpl.java:2096)
[java] at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToN
ode(TransformerImpl.java:1927)
[java] at
org.apache.xalan.transformer.TransformerImpl.transformNode(Tr
ansformerImpl.java:1120)
[java] at
org.apache.xalan.transformer.TransformerImpl.transform(Transf
ormerImpl.java:590)
[java] at
org.apache.xalan.transformer.TransformerImpl.transform(Transf
ormerImpl.java:1037)
[java] at
org.apache.xalan.transformer.TransformerImpl.transform(Transf
ormerImpl.java:1015)
[java] at XMLConfig.parse(Unknown Source)
[java] at XMLConfig.parse(Unknown Source)
[java] at XMLConfig.parse(Unknown Source)
[java] at XMLConfig.main(Unknown Source)
[java] javax.xml.transform.TransformerException
[java] at
org.apache.xalan.transformer.TransformerImpl.transformNode(Tr
ansformerImpl.java:1151)
[java] at
org.apache.xalan.transformer.TransformerImpl.transform(Transf
ormerImpl.java:590)
[java] at
org.apache.xalan.transformer.TransformerImpl.transform(Transf
ormerImpl.java:1037)
[java] at
org.apache.xalan.transformer.TransformerImpl.transform(Transf
ormerImpl.java:1015)
[java] at XMLConfig.parse(Unknown Source)
[java] at XMLConfig.parse(Unknown Source)
[java] at XMLConfig.parse(Unknown Source)
[java] at XMLConfig.main(Unknown Source)
[java] ---------
[java] java.util.EmptyStackException
[java] at java.util.Stack.peek(Stack.java:82)
[java] at org.jdom.input.SAXHandler.characters(SAXHandler.java:483)
[java] at
org.xml.sax.helpers.XMLFilterImpl.characters(XMLFilterImpl.ja
va:614)
Thanks.
Jay
More information about the jdom-interest
mailing list