开发者

XPath recursive

A part of my xml-file:

<table>
    <row id="aant">
        <radio id="radaant">
            <omschrijving>test radio</omschrijving>
            <omschrijving>part 2</omschrijving>
            <table>
                <row id="testrow">
                    <radio id="testrad">
                        <omschrijving>test radio deeper</omschrijving>
              开发者_开发百科          <table/>
                    </radio>
                </row>
            </table>
        </radio>
    </row>
</table>

I would like to get the "omschrijving" from under the tag radio with id="radaant". Since "omschrijving" is also deeper in the child i always get "test radiopart 2test radio deeper" as result, but I just want "test radiopart 2".

I'm currently using xpath: expr = xpath.compile("/table/row[@id='aant']/radio[@id='radaant']/omschrijving")

How can I change my xpath string to get only the "omschrijving" from the current node?


You obviously are talking about another XML document or another XPath expression.

When applied on the provided XML document:

<table>
  <row id="aant">
    <radio id="radaant">
       <omschrijving>test radio</omschrijving>
       <omschrijving>part 2</omschrijving>
       <table>
          <row id="testrow">
            <radio id="testrad">
              <omschrijving>test radio deeper</omschrijving>
              <table/>
            </radio>
          </row>
       </table>
    </radio>
  </row>
</table>

your XPath expression:

/table/row[@id='aant']/radio[@id='radaant']/omschrijving

selects exactly the wanted nodes:

<omschrijving>test radio</omschrijving>
<omschrijving>part 2</omschrijving>


try expr = xpath.compile("/table/row[@id='aant']/radio[@id='radaant']/child::omschrijving")

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜