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
>