2011-11-09 9 views
5

Parsuję stronę HTML z XPath i chcę pobrać cały tekst określonego akapitu, w tym tekst linków.Używanie XPath do uzyskania tekstu akapitu z łączami wewnątrz

Na przykład mam następujący akapit:

<p class="main-content"> 
    This is sample paragraph with <a href="http://google.com">link</a> inside. 
</p> 

muszę się następujący tekst jako wynik: „To jest akapit próbki z linkiem wewnątrz”, jednak stosując "//p[@class'main-content']/text()" daje mi tylko: „To jest akapit próbki z wewnątrz ".

Czy możesz pomóc? Dzięki.

+1

Kod jest uszkodzony - nie zamknąć 'href' cytaty atrybutów. – lonesomeday

+0

Dzięki, poprawiono tę literówkę. –

Odpowiedz

6

Aby uzyskać całą zawartość tekstową węzła, użyj string funkcję:

string(//p[@class="main-content"]) 

pamiętać, że ten dostaje wartość ciągu. Jeśli chcesz węzłów tekstowych (zwróconych przez text()), możesz to zrobić. Trzeba szukać na wszystkich głębokościach:

//p[@class="main-content"]//text() 

ta zwraca trzy węzły tekstowe: This is sample paragraph with, link i inside.

+0

Wielkie dzięki, @lonesomeday. Działa świetnie! –

Powiązane problemy