Внутренний текст xpath без содержимого дочернего узла - PullRequest
2 голосов
/ 08 января 2012

У меня есть такой HTML-код (который я не могу изменить):

<div>
    <p class="name">
        <span>Employee Name: </span>
        John Smith
    </p>
</div>

И я хотел бы использовать xpath для извлечения только части "Джона Смита" ..

Я пытался использовать этот код:

//div//p[@class='name']//text()

Однако, он не работает.

Каков наилучший способ добиться того, что мне нужно?

Большое спасибо.

1 Ответ

5 голосов
/ 08 января 2012

У вас почти есть это.

Измените ваш XPath на: //div//p[@class='name']/text()

Когда вы используете //text(), он выбирает все дочерние узлы text(), включая «Имя сотрудника».: "текстовый узел, который является дочерним по отношению к <span>.

Лучше по возможности избегать //, так как это делает ваши выражения менее эффективными и более подверженными подобным проблемам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...