<td>
some text here
<a href="http://blablabla">ch1</a>
</td>
什麼是最好的選擇some text here
?我想用css選擇器或xpath來做到這一點,更好的是而不是 jquery。謝謝。 (我知道這個問題很可能是重複......)在HTML中選擇這種文本的最佳方式是什麼?
<td>
some text here
<a href="http://blablabla">ch1</a>
</td>
什麼是最好的選擇some text here
?我想用css選擇器或xpath來做到這一點,更好的是而不是 jquery。謝謝。 (我知道這個問題很可能是重複......)在HTML中選擇這種文本的最佳方式是什麼?
這僅僅是節點的text()
:
//td/text()
演示(使用xmllint
):
$ xmllint index.html --html --xpath '//td/text()'
some text here
另外,要關注@ King King的評論,您可能希望通過指定一個索引來明確地獲取第一個文本節點(如果存在其他td
的文本子節點,將會有所幫助):
//td/text()[1]
雖然,//td/text()
完美適用於您提供的輸入。
你的解決方案是正確的,但似乎'text()'不能在硒xpath選擇器中使用。 – laike9m 2014-11-05 16:06:56
@ laike9m是的,你可以做的是遵循建議[這裏](http://stackoverflow.com/a/12397642/771848),並從「td」文本中「減去」鏈接文本。 – alecxe 2014-11-05 16:13:08
@ laike9m或者,您可以獲取'td'的'innerHTML'並使用HTML解析器(例如Python中的BeautifulSoup或lxml)來提取所需的文本。 – alecxe 2014-11-05 16:14:58
你有沒有試過把它放在一個跨度?
<td>
<span id="tekstID"> some text here </span>
<a href="http://www.somelink.link">ch1</a>
</td>
我希望這提供了一些幫助:)
你想要的是***的***第一文本節點,所以只使用'文本()[1]'訪問它,'文本()'在這種情況下工作,但我認爲不安全(因爲未來可能會添加其他一些文本節點)。 – 2014-11-05 14:23:35