2016-09-29 46 views
1

識別文本我有一個HTML文檔的結構如下:的XPath在HTML

<li> 
<b>fixed_keyword:</b> varying_text</li> 

我想要得到的varying_text部分與xmllint打印。我已經嘗試過

xmllint --html --xpath "(//li[/b[text()='fixed_keyword:']]/text())" 
xmllint --html --xpath "(//li)/b[text()='fixed_keyword:']/text()" 
xmllint --html --xpath "(//li[text()='fixed_keyword:'])/text()" 

還有很多,但沒有任何工作到目前爲止。

要打印的正確xpath表達式是什麼varying_text

回答

2

您需要following-sibling軸:

//li/b[. = 'fixed_keyword:']/following-sibling::text() 

請注意,您不必在輸入HTML :

+0

是否可以使用via xpath和xmllint刪除'vary_text'中的前導空格?我可以通過'sed'運行它,但如果可能的話,我寧願只用一個命令就完成它。 – nautical

+0

@nautical是的,你可以嘗試用「normalize space」:'normalize-space(// li/b [。='fixed_keyword:']/following-sibling :: text())'。 – alecxe