Html Agility Packでhtmlタグノードの位置を見つける方法

c#-3.0 html html-agility-pack

質問

私はHTMLのアジリティパックを使用して、私のHTML文字列の中に別のHTMLタグの開始/終了位置を見つけることを試みています。

サンプルHTML文字列:

This is a <a href="https://en.wikipedia.org/wiki/Health">custom</a> made html string that will serve as an example for the <a href="http://stackoverflow.com">StackOverflow</a> question described above.

成功したコードを実行した後、私は次のようにAタグの開始インデックスの値で2つの配列を取得する必要があります:

int[] startIndex = new int[] { 11, 124 };
int[] endIndex = new int[] { 68, 176 };

ここで、11と125はaタグの先頭を示すインデックス位置であり、68と175は同じタグの最後のインデックス位置を表します。

私は、htmlNodeを使ってhtmlの敏捷性パックを使っていることを知っています。私は開始インデックスと、要素のinnerHtml.Lenghtと一緒にhtml要素の終了インデックス位置を計算することができるLinePosition値を取得できます。

私は次の要素を使ってa要素を数えることができました:

int aNodesCount =  htmlDoc.DocumentNode.SelectNodes("//a").Count;

そして今、私はそれらをすべて処理し、それぞれのLinePosition値を取得する必要があります。これは私が自分が立ち往生している場所です。

人気のある回答

まあ、それはかなりシンプルだったので、私は同じ問題を抱えている他人の答えを投稿します:

foreach (HtmlNode aNode in htmlDoc.DocumentNode.SelectNodes("//a"))
{
    startIndex.Add(aNode.LinePosition);
    endIndex.Add(aNode.LinePosition + aNode.OuterHtml.Length);
}


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