<body>
<div>some text</div>
I NEED THIS TEXT ONLY
<div>some text</div>
more text here
<div>some text</div>
one more text here
<div>some text</div>
</body>
如何?
答案 0 :(得分:5)
使用强>:
/*/div[1]/following-sibling::text()[1]
这将选择文档顶部元素的第一个div
子元素的第一个文本节点兄弟。
答案 1 :(得分:0)
这将返回body
个div
元素中的第一个文本节点:
/body/text()[
./preceding::element()[1][local-name()="div"] and
./following::element()[1][local-name()="div"]
][1]
应该返回
I NEED THIS TEXT ONLY
答案 2 :(得分:0)
这个XPath 1.0:
/body/text()[preceding-sibling::*[1][self::div]]
[following-sibling::*[1][self::div]][1]
此外:
/body/text()[normalize-space()][1]
答案 3 :(得分:-1)
我没有nokogiri,但这里只使用基本的字符串操作。
html=<<EOF
<body>
<div>some text</div>
I NEED THIS TEXT ONLY
<div>some text</div>
more text here
<div>some text</div>
one more text here
<div>some text</div>
</body>
EOF
p html.split(/<\/*body>/)[1].split(/<\/div>/)[1].split(/<div>/)[0]