Zihao Zhao
Zihao Zhao

Reputation: 499

How to select text node without preceding text in XPath?

<div class="a">
    <div class="a random number of div wrapers">
        <div>Random1<em>Median</em>
            <div class="b">
                <div class="c">Edit</div>
            </div>
        </div>
        <div>Random2<em>Median</em></div>
        <div>
            <em>Median</em>
        </div>
        <div>Random3<em>Median</em></div>
        <div>Random4<em>Median</em>
        <div>Random4<em>Median</em></div>
    </div>
</div>


<div class="a">
<div class="a random number of div wrapers">
    <div>Random1<em>Median</em></div>
    <div>Random2<em>Median</em></div>
    <div>
        <em>Median</em>
    </div>
    <div>Random3<em>Median</em>
        <div class="b">
            <div class="c">Edit</div>
        </div>
    </div>
    <div>Random4<em>Median</em>
</div>
</div>

In this case, how to get the two nodes contains 'Median' that doesn't have text before it using XPath?

I prefer not using the index because the node position could be random.

Upvotes: 0

Views: 60

Answers (1)

Daniel Haley
Daniel Haley

Reputation: 52848

Maybe try:

//*[.='Median'][not(preceding-sibling::text()[normalize-space()])]

Upvotes: 1

Related Questions