This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
How to get the node list?
- To: XSL-List at mulberrytech dot com
- Subject: How to get the node list?
- From: Cheun N Chong <cnc99r at ecs dot soton dot ac dot uk>
- Date: Wed, 19 Apr 2000 14:24:37 +0100 (BST)
- Reply-To: xsl-list at mulberrytech dot com
Dear all,
Sorry to bother. I need help. I have attach my codes as the
following: PrintTreeStructure.java, foo.xml, foo.xsl and the output,
tree.xml. I want to make the PrintTreeStructure to print out the nodes of
the output of the parser, but the node list length is 0. I am not sure the
way I am doing it is correct. I need your expertise indeed. Btw, I am
using XML4J and LotusXSL.
PrintTreeStructure.java
=======================
import java.io.*;
import java.net.MalformedURLException;
import org.apache.xalan.xslt.XSLTProcessor;
import org.apache.xalan.xslt.XSLTInputSource;
import org.apache.xalan.xslt.XSLTResultTarget;
import org.apache.xalan.xslt.XSLTProcessorFactory;
import org.apache.xalan.xpath.xml.TreeWalker;
import org.apache.xalan.xpath.xml.FormatterToXML;
import org.apache.xerces.dom.DocumentImpl;
import org.apache.xerces.dom.NodeImpl;
import org.apache.xerces.parsers.DOMParser;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class PrintTreeStructure {
public static void main(String[] args) throws Exception, Throwable {
// Create the output file called tree.xml
FileOutputStream fileOutput = new FileOutputStream(new File("tree.xml"));
// Create an XSLT processor
XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
// Create input source documents
XSLTInputSource xmlID = new XSLTInputSource("foo.xml");
XSLTInputSource xslID = new XSLTInputSource("foo.xsl");
// Create a DOM Document node to attach the result nodes to
Document out = new DocumentImpl();
XSLTResultTarget result = new XSLTResultTarget(out);
// Process the source tree and produce the result tree
processor.process(xmlID, xslID, result);
// Get the node list from the document
NodeList nodelist = out.getChildNodes();
// Length of the node list
int length = (nodelist != null) ? nodelist.getLength() : 0;
System.out.println(length);
}
}
foo.xsl
=======
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="doc">
<out><xsl:value-of select="."/></out>
</xsl:template>
</xsl:stylesheet>
foo.xml
=======
<?xml version="1.0"?>
<doc>Hello</doc>
tree.xml (the output)
=====================
<?xml version="1.0" encoding="UTF-8"?>
<out>Hello</out>
Thousand thanks!
Best regards,
Cheun Ngen CHONG
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list