スパンからHTMLagilitypackを使用してデータを取得する

asp.net c# html html-agility-pack xpath

質問

私はHtmlAgilityPackを使用してウェブサイトからいくつかのデータをキャッチしたい。データは、プロパティclass="addresscolor__"持つオブジェクトに格納されます。しかし問題は、この名前のクラスが複数あるということです。そして、私はこの値を持つ特定のクラスからこのデータを取得する方法があることを知りたいのですが、 "Start with"または "Contained .."やこれのようなものを使用しますか?

HTMLコード:

<p class="addresscolor__">
    <span>Phone:</span>
    33875362 ، 22356341
    <br />
</p>

<p class="addresscolor__">
    <span>mobile:</span>
    09125231827
    <br />
</p>

私はこのコードを使用します:

HtmlNodeCollection nodes2 = doc.DocumentNode.SelectNodes("//p[@class='addresscolor__']");

もう1つは、このクラスにspanタグが含まれていることです。これらのコードでは、 <p>タグの値全体をキャッチしますが、「Mobile」スパンタグでのみ数値が必要です。

受け入れられた回答

このパラグラフを見つけるには:

//p[@class='addresscolor__' and contains(span, 'mobile:')]

テキストノード(電話番号)に限定するには:

//p[@class='addresscolor__' and contains(span, 'mobile:')]/text()

空白をさらに取り除くには:

normalize-space(//p[@class='addresscolor__' and contains(span, 'mobile:')]/text())

HTMLクラスを一致させるには、ノードが複数のクラスを持つことができ、それを処理する方法も考えてください



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