由此:
<span class="postbody">
<span style="color: #8e2fb6">
<span style="font-weight: bold">nickname</span>
</span>
<br>
Example text
<br>
Example text
<br>
<p class="signature">THIS IS WHAT I DO NOT WANT</p>
</span>
我想提取:
<br>
Example text
<br>
Example text
<br>
我试过了:span/text()[1]
但似乎没有用。我总是得到不受欢迎的p
课程。它甚至可以吗?
答案 0 :(得分:1)
首先,您需要将Html字符串加载到HtmlDocument或HtmlNode(使用.load()函数)。
ChildNodes集合包含当前节点的每个子节点(基本上 span.postbody 下的每个节点)。
之后您需要做的事情非常明显,只需抓住 #text 和 br 节点(请记住,您会收到一些 #text < / strong>只有空白字符的节点。您可能希望在结果中过滤掉它。
//load html to HtmlNode
node.ChildNodes.Where(n => n.Name.Equals("#text") || n.Name.Equals("br")) //It will return collection of HtmlNode
答案 1 :(得分:0)
您可以将jQuery选择器用于postbody,然后使用.text方法,该方法应该忽略HTML。这也将忽略。
$( 'postbody。')文本();
另一种方法是遍历$('。postbody')的子项.text();
答案 2 :(得分:0)
'//text()[preceding-sibling::br and normalize-space()]'