2014-11-05 34 views
1
<td> 
some text here 
<a href="http://blablabla">ch1</a> 
</td> 

什麼是最好的選擇some text here?我想用css選擇器或xpath來做到這一點,更好的是而不是 jquery。謝謝。 (我知道這個問題很可能是重複......)在HTML中選擇這種文本的最佳方式是什麼?

+1

你想要的是***的***第一文本節點,所以只使用'文本()[1]'訪問它,'文本()'在這種情況下工作,但我認爲不安全(因爲未來可能會添加其他一些文本節點)。 – 2014-11-05 14:23:35

回答

1

這僅僅是節點的text()

//td/text() 

演示(使用xmllint):

$ xmllint index.html --html --xpath '//td/text()' 
some text here 

另外,要關注@ King King的評論,您可能希望通過指定一個索引來明確地獲取第一個文本節點(如果存在其他td的文本子節點,將會有所幫助):

//td/text()[1] 

雖然,//td/text()完美適用於您提供的輸入。

+0

你的解決方案是正確的,但似乎'text()'不能在硒xpath選擇器中使用。 – laike9m 2014-11-05 16:06:56

+0

@ laike9m是的,你可以做的是遵循建議[這裏](http://stackoverflow.com/a/12397642/771848),並從「td」文本中「減去」鏈接文本。 – alecxe 2014-11-05 16:13:08

+0

@ laike9m或者,您可以獲取'td'的'innerHTML'並使用HTML解析器(例如Python中的BeautifulSoup或lxml)來提取所需的文本。 – alecxe 2014-11-05 16:14:58

-1

你有沒有試過把它放在一個跨度?

<td> 
<span id="tekstID"> some text here </span> 
<a href="http://www.somelink.link">ch1</a> 
</td> 

我希望這提供了一些幫助:)

相關問題