我需要从HTML代码(HtmlDocument或HtmlNodes列表)中提取节点对。
问题是,我需要选择一个具有class属性但没有任何值的节点(请参见图片),无论是来自List还是HtmlDocument都可以,我会选择最佳解决方案。
另一个更好的解决方案是选择“”节点及其直接后续兄弟::li[1](链接#2),这可能是我程序的一部分。链接#2似乎有所帮助,但我不知道如何使用它来“获取所有节点和其第一个后续兄弟”。
我想要2件事: - 一些代码以通过类获取“一个节点及其第一个后续节点”,我尚未使用XPathes(或w / e)因此我还不熟悉 - 如果可能的话,一种获取“具有class属性但无值”的节点的方法
问题是,我将稍后选择具有“valueless”类的HtmlNode,我正在寻找一种方法来实现它。如果还不够清楚,这个想法就像:
问题是,我需要选择一个具有class属性但没有任何值的节点(请参见图片),无论是来自List还是HtmlDocument都可以,我会选择最佳解决方案。
另一个更好的解决方案是选择“”节点及其直接后续兄弟::li[1](链接#2),这可能是我程序的一部分。链接#2似乎有所帮助,但我不知道如何使用它来“获取所有节点和其第一个后续兄弟”。
我想要2件事: - 一些代码以通过类获取“一个节点及其第一个后续节点”,我尚未使用XPathes(或w / e)因此我还不熟悉 - 如果可能的话,一种获取“具有class属性但无值”的节点的方法
问题是,我将稍后选择具有“valueless”类的HtmlNode,我正在寻找一种方法来实现它。如果还不够清楚,这个想法就像:
var r = htmlDoc.DocumentNode.Descendants("li").Where(d => d.Attributes["class"].Value.Equals(NULL)); //I’m not sure about the [enter image description here][1].Value.Equals() ^^’
链接: - 如何在HTML + HTMLAgilitypack中获取下两个节点 但我以前从未使用过这个(我可以使用它来选择“”节点及其紧随其后的节点(不会使用,太可怕了)
- 选择当前元素旁边的元素HtmlAgilityPack 我原本打算使用这个,但我从未使用过xpath处理htmldoc(现在正在研究)
图片:
示例代码,我想要提取的内容 试图添加2张图片:输入图像描述
更新
好的,有了Hung Cao的帮助,我能够选择
<li class>
节点。
现在,我想做的事情(这是我最初解释过的,但对我来说甚至并不清楚^^,因此我将尝试使用一个具体的示例),即选择“节点”对,更确切地说是一个特定的节点和它的直接第一个兄弟节点。我有:
<li class="A">...</>
=> 第一对
<li class="B">...</>
=> 第一对
<li class="A">...</>
=> 第二对
<li class="B">...</>
=> 第二对
我想最终得到类A/类B对的集合或数组(实际上,我正在使用一个C#类,其中基本上是A的内容,并且其中有一个数组,我在其中存储B类的元素)。
tl;dr:我希望得到类似于
public List<Pair> ExtractPairs(HtmlAgilityPack.HtmlDocument htmlDoc){
的东西。
List<Pair> pairs = new List<>();
foreach (HtmlNode node in htmlDoc.DocumentNode.SelectNodes("//li[@class='A']")) {
Pair pair = new Pair(node, node 的第一个兄弟节点(它将始终是
<li class="B">
));
pairs.add(pair);
}
return pairs;
}