2013-06-15 4 views
0

Я пытаюсь выбрать текстовый узел «строка b», используя XPath с HtmlAgilliyPack.Xpath с htmlagilitypack

<div> 
    string a<br/> 
    string b<br/> 
    string c<br/> 
</div> 

Я не уверен, как выбрать текст?

Это не будет работать //div/text(1)

Кто-нибудь есть какие-то предложения?

+0

Вы не можете выбрать строку b, используя xpath. Расскажите нам немного больше о своей проблеме. – a1204773

+1

@Loclip, конечно, он может. –

+0

Даже по-разному. ;-) –

ответ

0

Try:

//div/br[1]/following-sibling::text()[1]' 

Прямой текст следующий после первого br.

+0

Это также работает. – Marcel

1

Есть две проблемы с вашим выражением:

  • XPath начинается отсчет на 1, так что вы хотите второй текстовый узел
  • text() является узлом фильтр, который не принимает аргументов. Если вы хотите ограничить второй текстовый узел, используйте предикат [position() = 2] или короткую версию [2].

Используйте это выражение:

//div/text()[2] 

Выбор текстовые узлы могут включать в себя несколько неприятностей, разделочные начальные и конечные пробелы и опуская пробельные только текстовые узлы, зависит от реализации.

+0

Спасибо! Это отлично работает! – Marcel

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