2015-10-18 36 views
1

這是我在做什麼,從XHTML檢索所有文字:如何在XPath 1.0中使用帶有後綴的text()?

//p/text() 

工作正常,但他們都去一個接一個,沒有任何分隔符。我想在它們之間添加一個空格。我想:

//p/concat(text(), " ") 

沒有運氣:

XPath error : Invalid expression 
//p/concat(text(), " ") 
     ^

我使用xmllint版本20902

回答

3

XPath是真的選擇不操作。通過超越選擇文本來安排它在選定的項目之間有間距,你從單純的選擇到操縱過關。 對於操作,請考慮XSLT而不是XPath。

這就是說,如果你可以的XPath 2.0(通過另一種工具 - xmllint僅支持的XPath 1.0),你可以加入選擇的串在一起,通過string-join():但是

string-join(//p/text(), ' ') 

注意的是,//p/text()將錯過div,span等文字。也許你的意思是//*/text()//text()?還要注意的是,即使在XPath 1.0中,你也可以通過string(/)得到所有的文本,儘管這樣也不能滿足你增加空間的願望。

相關問題