Как получить выделенный текст между различными тегами с XPath? - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь получить текстовые значения между span тегами с XPath, которые не содержат атрибута класса со значением «скрыть».Пожалуйста, покажи мне правильный путь, основываясь на моем примере кода.Мой код является лишь частью большого 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 голосов
/ 27 марта 2019

Это возможно только в XPath-2.0.
И подход состоит в том, чтобы выбрать все text() узлы, которые являются дочерними для определенного узла <span>:

string-join(//div[@class='nr']/span[@class='nr']/span/text()/normalize-space())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...