来自字符串XML的DomParser获取null文档

时间:2015-06-08 16:28:39

标签: java xml xml-parsing domparser

我正在尝试使用domParser解析xml字符串,但是当我尝试获取文档时,它显示[#document:null]并且它不包含xml传递的数据。

代码是这样的:

Document doc = null;
DOMParser parser = new DOMParser();
logger.debug("Parsing");
InputSource IS = new InputSource(new StringReader(nameFile));            
parser.parse(IS);
doc = parser.getDocument();
NodeList NL = doc.getElementsByTagName("element");

当doc = parser.getDocument()时,问题就开始了。 它返回[#document = null]。所以NodeList找不到我正在寻找的元素。 我的XML非常大。它包含大约50K字符。 我的问题是,引入这个问题的可能问题是什么?

为了您的信息,具有相同代码的此应用程序在OAS中使用JDK1.4,现在我正在使用JDK 1.6将应用程序转移到Weblogic 12c。

提前致谢。

更新: 很抱歉没有提到nameFile数据类型。 nameFile是字符串格式的xml数据。

UPDATED2: 我试过一个简单的xml但没有运气。 例: 第一个示例:此字符串没有任何空格 - >

nameFile = "<?xml version='1.0'?><company><staff id='1001'><firstname>yong</firstname><lastname>mook kim</lastname><nickname>mkyong</nickname><salary>100000</salary></staff><staff id='2001'><firstname>low</firstname><lastname>yin fong</lastname><nickname>fong fong</nickname><salary>200000</salary></staff></company>";

第二个例子:

nameFile = "<message>Hello</message>

这些都不起作用。始终返回[#document:null]

1 个答案:

答案 0 :(得分:0)

我认为&name;名称文件&#39;在你的代码片段中是一个字符串!以下对我来说非常适合。

String nameFile= "<message>HELLO World</message>";
DOMParser parser = new DOMParser();
try {
    parser.parse(new InputSource(new java.io.StringReader(nameFile)));
    Document doc = parser.getDocument();
    String message = doc.getDocumentElement().getTextContent();
    System.out.println(message);
} catch (SAXException e) {
    // handle SAXException 
} catch (IOException e) {
    // handle IOException 
}