Xpath to search for a node that has ANY attribute containing a specific string?

后端 未结 3 511
醉话见心
醉话见心 2020-12-16 16:09

I can search for a String contained in an specific attribute if I use the following XPath /xs:schema/node()/descendant::node()[starts-with(@my-specific-attrib

相关标签:
3条回答
  • 2020-12-16 16:37

    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')]]
    
    0 讨论(0)
  • 2020-12-16 16:43

    This is what you are looking for:

    //*[@*[starts-with(., 'h')]]
    
    0 讨论(0)
  • 2020-12-16 16:49

    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')]
    
    0 讨论(0)
提交回复
热议问题