Hello,
I have troubles using SAX transform.
When transforming document without SAX, everything works fine. But when
using SAX, I get document without tags.
I dont know, where is the problem.
Thanks for any help.
Miro
----------------------------------------------------------------------------
------------------
first code
//without SAX, this works fine
TransformerFactory tFactory = TransformerFactory.newInstance();
transformer = tFactory.newTransformer(new StreamSource("article.xsl"));
transformer.transform(new StreamSource("article.xml"), new StreamResult(new
FileOutputStream("article.html")));
----------------------------------------------------------------------------
------------------
second code
//using SAX, get troubles
File stylesheet = new File("article.xsl");
File datafile = new File("article.xml");
BufferedInputStream bis = new BufferedInputStream(new
FileInputStream(datafile));
InputSource input = new InputSource(bis);
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser parser = spf.newSAXParser();
XMLReader reader = parser.getXMLReader();
SAXTransformerFactory stf =
(SAXTransformerFactory)TransformerFactory.newInstance();
XMLFilter filter = stf.newXMLFilter(new StreamSource(stylesheet));
filter.setParent(reader);
StreamResult result = new StreamResult(new
FileOutputStream("article.html"));
Transformer transformer = stf.newTransformer();
SAXSource transformSource = new SAXSource(filter, input);
transformer.transform(transformSource, result);
----------------------------------------------------------------------------
------------------
article.xml
<?xml version="1.0"?>
<Article>
<ArtHeader>
<Title>Title of my (Docbook) article</Title>
</ArtHeader>
<Sect1>
<Title>Title of Section 1.</Title>
<Para>This is a paragraph.</Para>
</Sect1>
</Article>
----------------------------------------------------------------------------
-------------------
article.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml"/>
<xsl:template match="Article">
<ARTICLE>
<xsl:apply-templates/>
</ARTICLE>
</xsl:template>
<xsl:template match="/Article/ArtHeader/Title">
<TITLE> <xsl:apply-templates/> </TITLE>
</xsl:template>
<xsl:template match="//Sect1">
<SECT><xsl:apply-templates/></SECT>
</xsl:template>
<xsl:template match="Para">
<PARA><xsl:apply-templates/></PARA>
</xsl:template>
</xsl:stylesheet>
----------------------------------------------------------------------------
---------------------------
get when using first code( this is what I want get)
<?xml version="1.0" encoding="UTF-8"?>
<ARTICLE>
<TITLE>Title of my (Docbook) article</TITLE>
<SECT>
Title of Section 1.
<PARA>This is a paragraph.</PARA>
</SECT>
</ARTICLE>
----------------------------------------------------------------------------
---------------------------
get when using second code( no tags in output)
<?xml version="1.0" encoding="UTF-8"?>
Title of my (Docbook) article
Title of Section 1.
This is a paragraph.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list