xml - 从 XML 返回元素的第一个属性

标签 xml xpath attributes xquery

将 XML 元素视为

<Person>
    <contact phone="123" email="abc" address="abcde">Sid</contact>
    <contact phone="987" email="cba" address="qwerty">Zid</contact>
</Person>

我想要一个 xpath,它将打印第一个属性 =“123”的联系人节点,无论属性名称如何。类似于/Person/contact[@*[position()=1]="123"]。在这种情况下,它应该打印“Sid”。

最佳答案

如果您使用/contact/@*[1],您可能会得到您想要的。但请记住,属性没有排序(分别为 "The relative order of attribute nodes is implementation-dependent." ),因此不同的实现可能会为 @* 上的位置谓词 [1] 返回不同的属性。

XPath /Person/contact[@* = '123'] 可能会满足您编辑的要求,因为它选择一个 contact 元素,该元素具有任何值为 '123'。正如已经指出的,您还可以使用位置谓词 /Person/contact[@*[1] = '123'] 但结果可能取决于实现。

关于xml - 从 XML 返回元素的第一个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30867615/

相关文章:

java - org.json.XML 转换 json 到 xml 到 json 失败

Android Studio 无法解析 ?android : resources

webview - 如何在 Angular2 应用程序中使用 Electron 的 <webview>?

python - 检查方法是否已经在对象中?

html - HTML5中以数字开头的ID有效吗?如果我们使用 HTML5 文档类型,其他技术是否支持这些 ID?

java - 什么是使用 Stax 解析 DOM 的解析器?

xml - XSLT 1.0 (xsltproc) - 无法解析巨大的 XML

xpath - 具有两个条件的XPath 1.0返回节点

java - Selenium By.xpath、By.linkName 以前可以工作,现在不再工作了

javascript - 如何使用xPath选择多个元素?