You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by Vi...@edgematrix.com on 2000/10/03 03:56:29 UTC
Help! Not able to parse the XML Document
Hi,
I am working on a program which uses the
"org.apache.xerces.parsers.DOMParser" to parse a XML document. However, It
seemed like the XML file is not parsed and when I used the getDocument to
get the document tree, I received a null value. There is no "Internal Error
500" when I access the .jsp page. I have attached a portion of my coding.
The web server that is running at the backend is a TOMCAT.
I am using Xerces 1.2 for Java.
Really appreciate if you could point out to me what I have done wrong. I am
a novice in this field and there are no people that I know can help me on
this & I am very desperate for solutions....:-(...
Thanks:-)
<!--Codes-->
<%@ page language="java" %>
<%@ page import="
java.io.UnsupportedEncodingException,
org.w3c.dom.Attr,
org.w3c.dom.Document,
org.w3c.dom.Element,
org.w3c.dom.NamedNodeMap,
org.w3c.dom.CharacterData,
org.w3c.dom.Node,
org.w3c.dom.NodeList,
org.xml.sax.SAXNotSupportedException,
java.io.File,
org.apache.xerces.parsers.DOMParser,
java.io.IOException,
org.w3c.dom.DOMException" %>
<%!
//private static String DEFAULT_PARSER_NAME
"org.apache.xerces.parsers.DOMParser";
//private static String parserWrapperName = "dom.wrappers.DOMParser";
//private static String parserWrapperName
= "org.apache.xerces.parsers.DOMParser";
private static boolean setValidation = false;
private static boolean setNameSpaces = true;
private static boolean setSchemaSupport = true;
private static boolean setDeferredDOM = true;
int maxcontent = 35;
int contentIndex=0;
int startID=0;
NamedNodeMap mailnode;
String date;
String sender;
Node subjectelement;
Node contentelement;
NodeList mailelements;
Document maildoc;
%>
<%
try
{
//DOMParserWrapper parser
= (DOMParserWrapper)Class.forName(DEFAULT_PARSER_NAME).newInstance();
//DOMParserWrapper parser
= (DOMParserWrapper)Class.forName(parserWrapperName).newInstance();
org.apache.xerces.parsers.DOMParser parser = new DOMParser();
parser.setFeature
( "http://apache.org/xml/features/dom/defer-node-expansion",setDeferredDOM
);
parser.setFeature("http://xml.org/sax/features/validation",setValidation);
parser.setFeature( "http://xml.org/sax/features/namespaces",setNameSpaces
);
parser.setFeature
("http://apache.org/xml/features/validation/schema",setSchemaSupport);
parser.parse("file:///c:/tomcat/webapps/Mail/jsp/mailsample.xml");
//Document maildoc = (Document)parser.parse
("file:///c:/tomcat/webapps/Mail/jsp/mailsample.xml");
Document maildoc = parser.getDocument();
NodeList mailelements = maildoc.getElementsByTagName("mail");
Node mailelement = maildoc.getElementsByTagName("mail").item(startID);
Node dateelement = maildoc.getElementsByTagName("date").item(startID);
Node senderelement = maildoc.getElementsByTagName("sender").item(startID);
Node subjectelement = maildoc.getElementsByTagName
("mailsubject").item(startID).getFirstChild();
Node contentelement = maildoc.getElementsByTagName
("mailbody").item(startID).getFirstChild();
out.println(parser.getDocument());
NamedNodeMap mailnode = mailelement.getAttributes();
String date = dateelement.getNodeValue();
String sender = senderelement.getNodeValue();
//CharacterData subject = (CharacterData)subjectelement.substringData(0,2);
//CharacterData content
= (CharacterData)contentelement.substringData(contentIndex,maxcontent);
//Element mailelement
= (Element)mailelements(startID).getAttribute(0).value;
//Element dateelement = (Element)dateelements(startID).getNodeValue();
//Element senderelement = (Element)senderelements(startID).getNodeValue();
//Element subjectelement
= (Element)subjectelements(startID).getfirstChild.substringData(0,2);
//Element contentelement
= (Element)contentelements(startID).getfirstChild.substringData(contentIndex,maxcontent);
//int max = mailelements.getLength();
}
XML Document:-
<mails>
<mail id="1">
<date>01-12-2000 14:33.23</date>
<sender>
<senname>Frank, Rizzo</senname>
<senemail>frizzo@fruity.com</senemail>
</sender>
<recipient>
<recname>Hanks, Tom</recname>
<recemail>htom@hotmail.com</recemail>
</recipient>
<mailcontent>
<mailsubject>Franks Ratchet Service</mailsubject>
<mailbody>FrankRatchet Services to test out the mail
application</mailbody>
</mailcontent>
</mail>
...............
</mails>
Re: Help! Not able to parse the XML Document
Posted by Wang K H <kh...@gridnode.com>.
Try changing
> String date = dateelement.getNodeValue();
> String sender = senderelement.getNodeValue();
to
String date = dateelement.getFirstChild().getNodeValue();
String sender = senderelement.getFirstChild().getNodeValue();
----- Original Message -----
From: <Vi...@edgematrix.com>
To: <xe...@xml.apache.org>
Sent: Tuesday, October 03, 2000 9:56 AM
Subject: Help! Not able to parse the XML Document
>
> Hi,
>
> I am working on a program which uses the
> "org.apache.xerces.parsers.DOMParser" to parse a XML document. However, It
> seemed like the XML file is not parsed and when I used the getDocument to
> get the document tree, I received a null value. There is no "Internal
Error
> 500" when I access the .jsp page. I have attached a portion of my coding.
> The web server that is running at the backend is a TOMCAT.
>
> I am using Xerces 1.2 for Java.
>
> Really appreciate if you could point out to me what I have done wrong. I
am
> a novice in this field and there are no people that I know can help me on
> this & I am very desperate for solutions....:-(...
>
> Thanks:-)
>
> <!--Codes-->
> <%@ page language="java" %>
> <%@ page import="
> java.io.UnsupportedEncodingException,
> org.w3c.dom.Attr,
> org.w3c.dom.Document,
> org.w3c.dom.Element,
> org.w3c.dom.NamedNodeMap,
> org.w3c.dom.CharacterData,
> org.w3c.dom.Node,
> org.w3c.dom.NodeList,
> org.xml.sax.SAXNotSupportedException,
> java.io.File,
> org.apache.xerces.parsers.DOMParser,
> java.io.IOException,
> org.w3c.dom.DOMException" %>
>
> <%!
> //private static String DEFAULT_PARSER_NAME
> "org.apache.xerces.parsers.DOMParser";
> //private static String parserWrapperName = "dom.wrappers.DOMParser";
> //private static String parserWrapperName
> = "org.apache.xerces.parsers.DOMParser";
> private static boolean setValidation = false;
> private static boolean setNameSpaces = true;
> private static boolean setSchemaSupport = true;
> private static boolean setDeferredDOM = true;
> int maxcontent = 35;
> int contentIndex=0;
> int startID=0;
> NamedNodeMap mailnode;
> String date;
> String sender;
> Node subjectelement;
> Node contentelement;
> NodeList mailelements;
> Document maildoc;
> %>
> <%
> try
> {
> //DOMParserWrapper parser
> = (DOMParserWrapper)Class.forName(DEFAULT_PARSER_NAME).newInstance();
> //DOMParserWrapper parser
> = (DOMParserWrapper)Class.forName(parserWrapperName).newInstance();
> org.apache.xerces.parsers.DOMParser parser = new DOMParser();
> parser.setFeature
> ( "http://apache.org/xml/features/dom/defer-node-expansion",setDeferredDOM
> );
> parser.setFeature("http://xml.org/sax/features/validation",setValidation);
> parser.setFeature( "http://xml.org/sax/features/namespaces",setNameSpaces
> );
> parser.setFeature
> ("http://apache.org/xml/features/validation/schema",setSchemaSupport);
> parser.parse("file:///c:/tomcat/webapps/Mail/jsp/mailsample.xml");
> //Document maildoc = (Document)parser.parse
> ("file:///c:/tomcat/webapps/Mail/jsp/mailsample.xml");
> Document maildoc = parser.getDocument();
> NodeList mailelements = maildoc.getElementsByTagName("mail");
> Node mailelement = maildoc.getElementsByTagName("mail").item(startID);
> Node dateelement = maildoc.getElementsByTagName("date").item(startID);
> Node senderelement = maildoc.getElementsByTagName("sender").item(startID);
> Node subjectelement = maildoc.getElementsByTagName
> ("mailsubject").item(startID).getFirstChild();
> Node contentelement = maildoc.getElementsByTagName
> ("mailbody").item(startID).getFirstChild();
> out.println(parser.getDocument());
> NamedNodeMap mailnode = mailelement.getAttributes();
> String date = dateelement.getNodeValue();
> String sender = senderelement.getNodeValue();
> //CharacterData subject =
(CharacterData)subjectelement.substringData(0,2);
> //CharacterData content
> = (CharacterData)contentelement.substringData(contentIndex,maxcontent);
> //Element mailelement
> = (Element)mailelements(startID).getAttribute(0).value;
> //Element dateelement = (Element)dateelements(startID).getNodeValue();
> //Element senderelement = (Element)senderelements(startID).getNodeValue();
>
> //Element subjectelement
> = (Element)subjectelements(startID).getfirstChild.substringData(0,2);
> //Element contentelement
> =
(Element)contentelements(startID).getfirstChild.substringData(contentIndex,m
axcontent);
> //int max = mailelements.getLength();
> }
>
> XML Document:-
> <mails>
> <mail id="1">
> <date>01-12-2000 14:33.23</date>
> <sender>
> <senname>Frank, Rizzo</senname>
> <senemail>frizzo@fruity.com</senemail>
> </sender>
> <recipient>
> <recname>Hanks, Tom</recname>
> <recemail>htom@hotmail.com</recemail>
> </recipient>
> <mailcontent>
> <mailsubject>Franks Ratchet Service</mailsubject>
> <mailbody>FrankRatchet Services to test out the mail
> application</mailbody>
> </mailcontent>
> </mail>
> ...............
> </mails>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: xerces-j-dev-unsubscribe@xml.apache.org
> For additional commands, e-mail: xerces-j-dev-help@xml.apache.org
>