用X路径来搜索一个节点,该节点的任何属性都包含一个特定的字符串?

问题描述 投票:13回答:3

我可以搜索一个包含在 特定 属性,如果我使用以下XPath/xs:schema/node()/descendant::node()[starts-with(@my-specific-attribute-name-here, 'my-search-string')]

然而,我想搜索任何包含*字符串的属性。

xml xslt search xpath
3个回答
16
投票

XML示例。

<root>
  <element1 a="hello" b="world"/>
  <element2 c="world" d="hello"/>
  <element3 e="world" f="world"/>
</root>

假设,我们需要选择任何包含以下属性的元素。h. 在这个样本中: element1, element2. 我们可以使用这个XPath。

//*[@*[starts-with(., 'h')]]

在你的例子中,你要找的一般模式是:

/xs:schema/node()/descendant::node()
    [@*[starts-with(@my-specific-attribute-name-here, 'my-search-string')]]

11
投票

你要找的一般模式是:

@*[contains(., 'string')]

它将匹配上下文元素上的任何包含 string. 因此,如果你只是想搜索整个文档中含有 string,你会用。

//@*[contains(., 'string')]

-1
投票

这是你要找的东西

//*[@*="your_value"]
© www.soinside.com 2019 - 2024. All rights reserved.