2012-01-08 3 views
2

У меня есть некоторые HTML вроде этого (который я не могу изменить):InnerText XPath без содержания дочернего узла

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

И я хотел бы использовать XPath для извлечения из просто «Джона Смита» части ..

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

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

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

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

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

+0

Я почти задал этот вопрос. Получил здесь от so.com предложение, когда я написал свой заголовок вопроса. Tnx – mhd

ответ

5

У вас его почти нет.

Изменения XPath для: //div//p[@class='name']/text()

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

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

+0

Большое спасибо Mads. Это сделал трюк! :) – Aaron

+0

второй раз :) – mhd

Смежные вопросы