W3C xml获取具有命名空间且没有命名空间的元素

时间:2013-03-04 12:34:54

标签: xml xml-namespaces w3c

我有如下的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")的选项,它允许我不对代码中的命名空间进行硬编码。现在想知道,使用*是否有任何缺点。

1 个答案:

答案 0 :(得分:1)

getElementByTagNameNS("Entity","sample")应为getElementsByTagNameNS("sample","Entity"),即命名空间名称位于本地名称之前。

在尝试获取nodeElement.getNodeName()但您尚未发布相关代码时,您可能犯了类似的错误。