我有如下的XML,
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Entities xmlns="sample">
<Entity>
sample Value
</Entity>
<ns1:Entity xmlns:ns1="sample">
sample Value
</ns1:Entity>
</Entities>
当我使用nodeElement.getNodeName();
时,我只能<Entity>
而不是<ns1:Entity>
。
我验证了this post并尝试getLocalName()
而不是getNodeName()
。它不起作用。此外,当我尝试使用getElementByTagNameNS("Entity","sample")
时,getLength()
方法返回0。
更新
如下面的答案所述,我互换了getElementByTagNameNS
的参数。
我看到一个使用getElementByTagNameNS("*","Entity")
的选项,它允许我不对代码中的命名空间进行硬编码。现在想知道,使用*
是否有任何缺点。
答案 0 :(得分:1)
getElementByTagNameNS("Entity","sample")
应为getElementsByTagNameNS("sample","Entity")
,即命名空间名称位于本地名称之前。
在尝试获取nodeElement.getNodeName()
但您尚未发布相关代码时,您可能犯了类似的错误。