【问题标题】:How to retrieve value of an attribute which contains colon in the attribute name using xpath如何使用 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>

提前致谢。

【问题讨论】:

    标签: java android xml xml-parsing saxparser


    【解决方案1】:

    要获取您可以使用的属性的值:

    /a/aff/@*[name()='xml:id']
    

    【讨论】:

    • 非常感谢 :-) 你的回答很准确 :-) 你能告诉我如何获取带有冒号的标签的值吗?如果是 aff:a 就说 aff 而不是 aff,怎么能我们解析它?
    • 如果你有 aff:a 那么 aff 必须是一个命名空间,这是一个不同的问题。看看这里:stackoverflow.com/questions/536441/…
    • 或者你可以使用 local-name() 代替 name(),FWIW stackoverflow.com/a/11131700/32453
    【解决方案2】:

    /a/aff/@xml:id 在获取值方面工作得很好......

    您是否要同时获取这两个值?

    如果您只想获取第一个值,您可以使用 /a/aff[1]/@xml:id

    【讨论】:

    • 如果没有冒号,你的答案是正确的,但是当有冒号时,它不会使用 /a/aff/@xml:id this xpath 获取属性值。
    猜你喜欢
    • 2018-05-01
    • 2021-08-28
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多