gpt4 book ai didi

c# - 如何连接两个 HtmlNodeCollection

转载 作者:行者123 更新时间:2023-12-01 21:56:37 25 4
gpt4 key购买 nike

我正在使用HTML Agility Pack在 C# 中,我有两个 HtmlNodeCollection。我可以同时加入这两个元素吗?或者是否有其他方法可以将这两个元素合并到一个 HtmlNodeCollection 中?

一:

HtmlNodeCollection butiks = doc.DocumentNode.SelectNodes("//div[contains(@class,'butik-large-image')]");

两个:

HtmlNodeCollection butiks = doc.DocumentNode.SelectNodes("//div[contains(@class,'butik small left')]");

最佳答案

HtmlNodeCollection继承IList<HtmlNode>它继承IEnumerable<HtmlNode>您可以调用 Enumerable.Concat() extension method创建一个包含两个源的新枚举。请参阅How to concatenate two IEnumerable<T> into a new IEnumerable<T>? .

您也可以通过 using an "or" in your Xpath expression 选择两组节点:

//div[contains(@class,'butik-large-image') or contains(@class,'butik small left')]

请注意此contains()期望按给定顺序给定类。如果您不想这样做,请使用括号和 and :

//div[contains(@class,'butik-large-image') 
or
(
contains(@class,'left') and
contains(@class,'small') and
contains(@class,'butik')
)]

参见How can I select an element with multiple classes with Xpath?为了正确实现该and ,如上面的代码将匹配误报,因为它不会将类作为单独的单词进行检查。

关于c# - 如何连接两个 HtmlNodeCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32541356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com