[jdom-interest] Problems with calls to getChild and getAttribute methods...
Bruce Hacker
bhacker at automark.net
Mon Aug 28 07:10:50 PDT 2000
I recently started using/evaluating JDOM and am having a problem getting
results when I make calls to the getChild and getAttribute methods of
elements. The error, Java Code and XML document that I am using are listed
below. Any assistance will be appreciated. I have tried making calls to
getChild several different ways (with and without the Namespace) but always
get the same error:
------------------------------Error message-----------------------------
org.jdom.NoSuchElementException: The element JavaXML:Title does not exist
within the specified element.
at org.jdom.Element.getChild(Element.java, Compiled Code)
at org.jdom.Element.getChild(Element.java:733)
at SAXTest.main(SAXTest.java:46)
-------------------------------Java Code--------------------------------
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.Namespace;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
class SAXTest {
public static void main(String[] args) {
if (args.length != 1) {
System.out.println("Usage: SAXTest [filename to parse]");
return;
}
try {
// Request document building without validation
SAXBuilder builder = new SAXBuilder(false);
Document doc = builder.build(new File(args[0]));
System.out.println("Document successfully read\n");
/*********************************************************/
// Get the Root element of the document
Element root = doc.getRootElement();
Namespace ns = root.getNamespace();
// Get the first title element
Element title = root.getChild("JavaXML:Title");
System.out.println("Root element name: " + root.getName());
System.out.println("Namespace: " + root.getNamespacePrefix());
System.out.println("Namespace URI: " + root.getNamespaceURI());
System.out.println();
System.out.println(" Title element: " + title.getName());
/*********************************************************/
} catch (JDOMException e) {
e.printStackTrace();
}
}
}
--------------------------XML Document---------------------------------
<?xml version='1.0'?>
<!-- Comment out for now
<?xml-stylesheet href="XSL\JavaXML.html.xsl" type="text/xsl"?>
<?xml-stylesheet href="XSL\JavaXML.wml.xsl" type="text/xsl"
media="wap"?>
<?cocoon-process type="xslt"?>
<!DOCTYPE JavaXML:Book SYSTEM "DTD\JavaXML.dtd">
-->
<!-- Java and XML -->
<JavaXML:Book xmlns:JavaXML="http://www.oreilly.com/catalog/javaxml/">
<JavaXML:Title>Java and XML</JavaXML:Title>
<JavaXML:Contents>
<JavaXML:Chapter focus="XML">
<JavaXML:Heading>Introduction</JavaXML:Heading>
<JavaXML:Topic subSections="7">What Is It?</JavaXML:Topic>
<JavaXML:Topic subSections="3">How Do I Use It?</JavaXML:Topic>
<JavaXML:Topic subSections="4">Why should I Use It?</JavaXML:Topic>
<JavaXML:Topic subSections="0">What's Next?</JavaXML:Topic>
</JavaXML:Chapter>
<JavaXML:Chapter focus="XML">
<JavaXML:Heading>Creating XML</JavaXML:Heading>
<JavaXML:Topic subSections="0">An XML Document</JavaXML:Topic>
<JavaXML:Topic subSections="2">The Header</JavaXML:Topic>
<JavaXML:Topic subSections="6">The Content</JavaXML:Topic>
<JavaXML:Topic subSections="1">What's Next?</JavaXML:Topic>
</JavaXML:Chapter>
<JavaXML:Chapter focus="Java">
<JavaXML:Heading>Parsing XML</JavaXML:Heading>
<JavaXML:Topic subSections="3">Getting Prepared</JavaXML:Topic>
<JavaXML:Topic subSections="3">SAX Readers</JavaXML:Topic>
<JavaXML:Topic subSections="9">Content Handlers</JavaXML:Topic>
<JavaXML:Topic subSections="4">Error Handlers</JavaXML:Topic>
<JavaXML:Topic subSections="0">
A Better Way to Load a Parser
</JavaXML:Topic>
<JavaXML:Topic subSections="4">"Gotcha!"</JavaXML:Topic>
<JavaXML:Topic subSections="0">What's Next?</JavaXML:Topic>
</JavaXML:Chapter>
<JavaXML:SectionBreak/>
<JavaXML:Chapter focus="Java">
<JavaXML:Heading>Web Publishing Frameworks</JavaXML:Heading>
<JavaXML:Topic subSections="4">Selecting a Framework</JavaXML:Topic>
<JavaXML:Topic subSections="4">Installation</JavaXML:Topic>
<JavaXML:Topic subSections="3">
Using a Publishing Framework
</JavaXML:Topic>
<JavaXML:Topic subSections="2">XSP</JavaXML:Topic>
<JavaXML:Topic subSections="3">Cocoon 2.0 and Beyond</JavaXML:Topic>
<JavaXML:Topic subSections="0">What's Next?</JavaXML:Topic>
</JavaXML:Chapter>
</JavaXML:Contents>
<!-- Comment out for now
<JavaXML:Copyright>&OReillyCopyright;</JavaXML:Copyright>
-->
</JavaXML:Book>
Regards
More information about the jdom-interest
mailing list