HTML Agility Pack - 在特定节点之后选择节点
我在 Codeplex 讨论中提出了这个问题,但我希望得到一个stackoverflow 上有更快的答案。
因此,我使用 HTML Agility Pack 在 C# 中进行 HTML 解析。 我有以下 html 结构:
<body>
<p class="paragraph">text</p>
<p class="paragraph">text</p>
<p class="specific">text</p>
<p class="paragraph">text</p>
<p class="paragraph">text</p>
</body>
我需要获取类“paragraph”的所有 p 元素,这些元素存在于类“specified”的 p 元素之后。
有办法做到这一点吗?
谢谢。
I asked the question in a codeplex discussion but I hope to get a quicker answer here at stackoverflow.
So, I use HTML Agility Pack for HTML parsing in C#.
I have the following html structure:
<body>
<p class="paragraph">text</p>
<p class="paragraph">text</p>
<p class="specific">text</p>
<p class="paragraph">text</p>
<p class="paragraph">text</p>
</body>
And I need to get all p elements with class "paragraph" that exist after the p element with class "specific".
Is there a way to do that?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 Mark 示例中的 .Class (如果不存在,请替换任何合适的内容)
使用 SkipWhile
,在 LINQPad 中,您会得到
5,6,7
:例如 根据 SelectNodes 返回的类型,要么:
要么
(或者,丑陋的版本)
(或者在某些情况下 - 如果您的表达式已经适当过滤则不是)
编辑:我可能会创建一个扩展方法:
任何人都关心搜索现有技术这?有什么好的名字建议吗?
using .Class as in Mark's example (if that doesnt exist, substitute whatever is appropriate)
Use SkipWhile
e.g. in LINQPad you get
5,6,7
from:So depending on the type SelectNodes returns, either:
or
(or, ugly version)
(or in some cases - not if your expression is already filtering appropriately)
EDIT: I'd probably create an extension method:
Anyone care to search up prior art for this? Any good name suggestions?
试试这个
Try this