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/02 07:44:16 UTC

Xerces Parser - Null value returned for getDocument()

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.

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();
}