我有一組html頁面(通過它我沒有任何控制),需要將li標記的完整內容作爲包含空格的單個文本塊來提取以及除li標籤對以外的所有標記。我使用的HTML解析器的XPath 1.0(並且沒有對這樣的選擇。)使用Xpath提取html標記的完整內容
輸入HTML看起來像
<ul class="gs-source-list">
<li id="s1" class="gs-source-item">
[S1] First text here
<br/>
<br/>
Label:
<br/>
<br/>
<span style="display:inline-block; margin-left:35px;">
More text
<br/>
More text
<br/>
</span>
<br/>
<br/>
Note:
<br/>
<br/>
<span style="display:inline-block; margin-left:35px;">GRO reference is Note text</span>
</li>
</ul>
.//*[@class='gs-source-item']
讓我我想要的文字,但與開放和關閉李標籤。
.//*[@class='gs-source-item']//text()
請將文本作爲單獨的元素(而不是單個元素)而不是內部標籤。
string(.//*[@class='gs-source-item']//text())
只讓我看到第一行文字。
string-join(.//*[@class='gs-source-item']//text(),"")
似乎並不是我正在使用的解析器的可接受語法,無論如何,我認爲它仍然會去掉內部標籤。
.//*[@class='gs-source-item']//node()
得到我所有的文本和標籤,但不是作爲一個單獨的塊。
我已經用盡想法嘗試...我已經看過相關的問題,但沒有找到任何幫助(除了我上面列出的想法)。
嘗試'/ * * [@ class ='gs-source-item']/*' - 這會返回列表中元素的集合。 –
@tomredfern返回內部標籤的內容,但不是頂級文本。 – ColeValleyGirl
抱歉,我會在下次正確閱讀您的問題。 –