【发布时间】:2013-04-20 08:20:12
【问题描述】:
我在解析 XML 文档时遇到了一些麻烦。出于某种原因,有些文本节点是我不希望出现的,因此我的测试变成了红色。 XML 文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<RootNode>
<PR1>PR1</PR1>
<ROL>one</ROL>
<ROL>two</ROL>
<DG1>DG1</DG1>
<ROL>three</ROL>
<ZBK>ZBK</ZBK>
<ROL>four</ROL>
</RootNode>
现在我有了这个可以重现错误的 sn-p 代码:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(TestHL7Helper.class.getResourceAsStream("TestHL7HelperInput.xml"));
Node root = doc.getFirstChild();
Node pr1 = root.getFirstChild();
检查根变量会产生[RootNode: null],这似乎是正确的,但后来不知何故全错了。 pr1 变量原来是一个文本节点 [#text:\n ] - 但是为什么解析器认为新行和空格是一个文本节点?这不应该被忽视吗?我尝试更改编码,但这也无济于事。有什么想法吗?
如果我删除所有新行和空格并将我的 XML 文档放在一行中,一切正常...
【问题讨论】:
-
这里有一个 [Dom 解析示例][1] 也许它会对你有所帮助。 [1]:stackoverflow.com/a/7902162/529543
-
也许应该更改问题标题。我翻阅它以获取有关混合内容和 DOM 解析的一些信息并在那里得到答案,但问题的标题乍一看并没有吸引我。类似于“使用 Java DOM 解析具有混合内容的 XML 时出现问题”。
标签: java xml xml-parsing document