XPath wildcards on node name

后端 未结 4 1409
既然无缘
既然无缘 2020-12-07 20:12

I want to grab a node from my XML file, the node has a prefix such as \"latest_\", but this may change and I\'m keen for my XSLT to be as fluid as possible. Here\'s the XPat

相关标签:
4条回答
  • 2020-12-07 20:56

    You could also use contains

    e.g

    /data/stats[contains(.,'_cost')] 
    
    0 讨论(0)
  • 2020-12-07 21:02

    The above did not work for me. I had to "slightly" modify that as follows:

    /data/stats/*[contains(name(),'_cost')]
    
    0 讨论(0)
  • 2020-12-07 21:04

    This is the correct XPath 1.0 expression which selects an element with the last 5 character of name equal to "_cost" in any namespace.

    /data/stats/*[substring(name(), string-length(name()) - 4) = '_cost']
    
    0 讨论(0)
  • 2020-12-07 21:13

    With XPath 1.0 you can use /data/stats/*[substring-after(name(), '_cost') = ''] pattern. That checks if the element's name ends with the _cost suffix.

    In XPath 2.0 there is fn:ends-with(str, str) and your corresponding expression will be *[ends-with(name(), '_cost')].

    0 讨论(0)
提交回复
热议问题