2つのHtmlNodeCollectionsを結合する方法


質問

私はUsign HTML Agility PackをC#で使用していますが、2つのHtmlNodeCollectionます。私は両方に参加することができますか、または1つのHtmlNodeCollection両方を取得する他の方法はありますか?

1:

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

二:

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

受け入れられた回答

HtmlNodeCollection IEnumerable<HtmlNode> IList<HtmlNode>を継承するIList<HtmlNode>を継承し、 Enumerable.Concat()拡張メソッドを呼び出して、両方のソースを含む新しい列挙型を作成できます。 2つのIEnumerable <T>を新しいIEnumerable <T>に連結する方法を参照してください

Xpath式で "or"を使って、両方のノードセットを選択することもできます

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

これcontains()が与えられた順序で与えられたクラスを期待していることに注意しcontains()ください。あなたがそれを望まないなら、かっことand使用しand

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

Xpathで複数のクラスを持つ要素を選択する方法は?」を参照してくださいその適切な実施のためにand 、それは別の言葉などのクラスをチェックしないので、上記のコードのように偽陽性と一致します。





ライセンスを受けた: CC-BY-SA
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ