Xpath to search for a node that has ANY attribute containing a specific string?
The general pattern you're looking for is:
@*[contains(., 'string')]
which will match any attribute on the context element that contains string
. So if you simply want to search the whole document for attributes containing string
, you'd use:
//@*[contains(., 'string')]
Sample XML:
<root>
<element1 a="hello" b="world"/>
<element2 c="world" d="hello"/>
<element3 e="world" f="world"/>
</root>
Suppose, we need to select elements which have any attribute containing h
. In this sample: element1
, element2
. We can use this XPath:
//*[@*[starts-with(., 'h')]]
In your sample:
/xs:schema/node()/descendant::node()
[@*[starts-with(@my-specific-attribute-name-here, 'my-search-string')]]