我正在加载像这样的一些XML字符串:
Document doc = getDocumentBuilder().parse(new InputSource(new StringReader(xml)));
接下来,我从这个文档
中提取一个节点:
XPath xpath = getXPathFactory().newXPath();
XPathExpression expr = xpath.compile(expressionXPATH);
NodeList nodeList = (NodeList)expr.evaluate(doc, XPathConstants.NODESET);
Node node = nodeList.item(0);
现在我想获取此节点的本地名称,但我得到了null
。
node.getLocalName(); // return null
通过调试器,我发现我的节点具有以下类型:DOCUMENT_POSITION_DISCONNECTED。
Javadoc指出对于这种类型的节点,getLocalName()
返回null
。
- 为什么节点的类型是DOCUMENT_POSITION_DISCONNECTED而不是ELEMENT_NODE?
- 如何“转换”节点的类型?
xml
和expressionXPATH
。 - Martin HonnenDocumentBuilderFactory
? - Martin Honnen