java在使用JDOM解析XML文件时出错
我有这个XML文档:
<?xml version="1.0" encoding="utf-8"?>
<RootElement>
<Achild>
.....
</Achild>
</RootElement>
如何检查文档是否包含Achild
元素?我试过了
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// Use the factory to create a builder
try {
final DocumentBuilder builder = factory.newDocumentBuilder();
final Document doc = builder.parse(configFile);
final Node parentNode = doc.getDocumentElement();
final Element childElement = (Element) parentNode.getFirstChild();
if(childElement.getNodeName().equalsIgnoreCase(...
但它给了我一个错误(childElement
为空)
# 1 楼答案
我认为你将
#text
节点(介于<RootElement>
和<Achild>
)作为第一个孩子(这是一个非常常见的错误),例如:返回:
改用:
通缉结果:
编辑:
第二种方法是使用^{} 方法:
但是,这仅在验证模式下有效,因此您需要在XML文档中提供DTD:
并设置
factory.setValidating(true)
。完整示例:需要原始代码的结果:
# 2 楼答案
听起来像。getFirstChild()将返回一个文本节点,其中包含“”和“”之间的空白,在这种情况下,您需要前进到下一个同级节点才能到达预期的位置