如何使用XPath在不同标签之间获取所选文本?

时间:2019-03-26 22:40:07

标签: xpath

我尝试使用XPath从span标签之间获取文本值,这些标签不包含值为“ hide”的类属性。请根据我的示例代码向我展示正确的方法。我的代码只是大型HTML代码的一部分。

我尝试过:

//div[@class='nr']//span[contains(@class,'hide')]

...这将获得具有“隐藏”类的span,但是我无法否定选择。我尝试了很多方法但没有成功。

<div class="nr" x-ms-format-detection="none">
    <i class="icon icon_phone">Tel.</i>
    <span class="nr">
        <span>
            <span class="hide"> 7</span>
            0
            <span class="hide"> 3</span>
            1
            <span class="hide"> 62</span>
            7
            <span class="hide"> 129</span>
            9
            <span class="hide"> 3</span>        
            <span class="hide">&nbsp;</span>
            2
            <span class="hide"> 279</span>
            <span class="hide"> 061</span>
            9
            <span class="hide"> 91</span>
            0
            <span class="hide"> 764</span>
            <span class="hide"> 2</span>
            5
            <span class="hide">&nbsp;</span>
            9
            <span class="hide"> 018</span>
            <span class="hide">&nbsp;</span>
            9
            <span class="hide"> 16</span>
            9
        </span>
    </span>
</div>

预期结果如下: 01792905999

1 个答案:

答案 0 :(得分:0)

这仅适用于XPath-2.0。
一种方法是选择属于某个text()节点的子节点的所有<span>节点:

string-join(//div[@class='nr']/span[@class='nr']/span/text()/normalize-space())