如何使用 xpath 检索属性名称中包含冒号的属性的值
Posted
技术标签:
【中文标题】如何使用 xpath 检索属性名称中包含冒号的属性的值【英文标题】:How to retrieve value of an attribute which contains colon in the attribute name using xpath 【发布时间】:2012-06-09 07:35:57 【问题描述】:我有一个简单的要求,我需要获取属性xml:id
的值,即af1
。
我正在使用SAXParser
,这是我的xpath:a/aff/@xml:id
,相反我能够获取使用xpath:a/aff/@value
的价值。
但我无法检索该值,您能帮帮我吗?
<?xml version="1.0" encoding="UTF-8" ?>
<a>
<aff xml:id="af1" value="a">
<uAff>
Hello
</uAff>
</aff>
<aff xml:id="corr1">
<uAff>
Hello1
</uAff>
</aff>
</a>
提前致谢。
【问题讨论】:
【参考方案1】:要获取您可以使用的属性的值:
/a/aff/@*[name()='xml:id']
【讨论】:
非常感谢 :-) 你的回答很准确 :-) 你能告诉我如何获取带有冒号的标签的值吗?如果是 aff:a 就说 aff 而不是 aff,怎么能我们解析它? 如果你有 aff:a 那么 aff 必须是一个命名空间,这是一个不同的问题。看看这里:***.com/questions/536441/… 或者你可以使用 local-name() 代替 name(),FWIW ***.com/a/11131700/32453【参考方案2】:/a/aff/@xml:id 在获取值方面工作得很好......
您是否要同时获取这两个值?
如果您只想获取第一个值,您可以使用 /a/aff[1]/@xml:id
【讨论】:
如果没有冒号,你的答案是正确的,但是当有冒号时,它不会使用 /a/aff/@xml:id this xpath 获取属性值。以上是关于如何使用 xpath 检索属性名称中包含冒号的属性的值的主要内容,如果未能解决你的问题,请参考以下文章
如何指定一个元素以具有一个属性,该属性说明它在 XML 模式中包含多少个子元素?
在 JavaScript/jQuery 中,如何检索名称中包含空格的数据?