HTMLAgilityPackと区切り

html-agility-pack

質問

私は区切られる一部のHTML、持って<br/>例えば:

Jack Janson
<br/>
309 123 456
<br/>
My Special Street 43

3列の情報を取得する最も簡単な方法は何ですか?

私はXPathのエキスパートではないので、改行で文字列を区切り、配列で作業する方法もあります。それを行うよりスマートな方法がありますか?

更新:コードの書式設定を忘れました。

受け入れられた回答

XML上の純粋なXPATHでは、次のようなXPATH式を使用します: //preceding-sibling::brまたは//following-sibling::brXPATH軸のヘルプはここを参照してください)

しかし、XPathの選択式( //br/text()//br/@blahでは純粋なテキストノードまたは(属性ノード)はサポートしていません。例)。これはフィルタで動作するので、これらの//br[text()='blah']または//br[@att='blah']動作します。

だから、質問に戻って、あなたは次のようなXPATHとコードを組み合わせる必要があります:

HtmlDocument doc = new HtmlDocument();
doc.Load(myHtmlFile);

foreach (HtmlNode p in doc.DocumentNode.SelectNodes("//br"))
{
    Console.WriteLine(p.PreviousSibling.InnerText.Trim());
}

それは出力されます

Jack Janson
309 123 456


Related

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