Java 如何使用xpath检索属性名中包含冒号的属性的值

Java 如何使用xpath检索属性名中包含冒号的属性的值,java,android,xml,xml-parsing,saxparser,Java,Android,Xml,Xml Parsing,Saxparser,我有一个简单的需求,其中我需要获取属性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> Hel

我有一个简单的需求,其中我需要获取属性
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>

你好
你好

提前感谢。

/a/aff/@xml:id可以很好地获取值

您是否试图同时获得这两个值


如果试图仅获取第一个值,则可以使用/a/aff[1]/@xml:id

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

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

非常感谢:-)您的答案很准确:-)您能告诉我如何获取带有冒号的标记的值吗。如果它是aff:a,我们如何解析它?如果您有aff:a,那么aff必须是一个名称空间,这是另一个问题。请看这里:或者您可以使用local-name()而不是name(),FWIW如果没有冒号,您的答案是正确的,但是当有冒号时,它不会使用/a/aff/@xml:id这个xpath获取属性值。