【发布时间】:2016-05-07 09:28:25
【问题描述】:
我正在尝试解析 XML 文档,但由于某种原因,我无法从任何内容中获取任何子节点。我已经厌倦了我所知道的一切。我最初尝试使用 Dom4J,但在命名空间方面遇到了重大困难。现在我正在尝试使用标准的 DOM 解析器。
我已经阅读了 oracle 教程以及其他教程,但没有看到任何关于为什么我的最基本功能失败的建议。
我将首先分享我的代码:
package testingtemp;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class DomParser {
public static void main(String args[]){
try{
File inputFile = new File("C:\\Users\\jhamric\\Desktop\\Camt54.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
doc.getDocumentElement().normalize();
System.out.println("Root Element: "+doc.getDocumentElement().getChildNodes());
}catch (Exception e){
e.printStackTrace();
}
}
}
所以我只想返回根的子节点(即“文档”)。应该返回一个子节点。
<?xml version="1.0"?>
-<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04">
-<BkToCstmrDbtCdtNtfctn>
+<GrpHdr>
-<Ntfctn>
<Id>161RD2521JI00XSZ</Id>
<CreDtTm>2016-01-27T13:25:21</CreDtTm>
这只是我的 Xml 的一小部分,但您可以清楚地看到 BkToCstmrDbtCdtNtfctn 应该作为打印屏幕中的子节点返回。相反,我的控制台输出如下所示:
Root Element: [Document: null]
它报告了正确的根元素,然后告诉我没有子节点。是什么赋予了?任何帮助将不胜感激!
【问题讨论】: