XML xpath, get the parent element till a specific element

后端 未结 2 1661
半阙折子戏
半阙折子戏 2021-02-01 15:40

I\'m looking for the right xpath syntax to get a specific parent of an element. Example:

root
   |- div
   |     |
   |     |----??? ---|
   |     |           |-         


        
相关标签:
2条回答
  • 2021-02-01 15:52

    Given the XML

    <?xml version="1.0"?>
    <root>
        <foo id="id1">
            <foo id="i2">
                <baz/>
            </foo>
        </foo>
    </root>

    You can find the nearest ancestor foo element from baz using the XPath expression:

    //baz/ancestor::foo[1]

    Which will select the foo element node of id "i2".

    So in your example (if I understand right) once you have got the "a" element you want, you can get "back up" the tree to the nearest ancestor div by appending "/ancestor::div[1]" to your expression.

    0 讨论(0)
  • 2021-02-01 16:05

    Use:

    /root/div[.//a[@class='1']]/text()
    

    This selects any text node that is a child of any a element that has a class attribute with value '1' and that (the a element) is a descendent of any div element that is a child of the top element named root.

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