HTML Agility Packを使用してノードの右側にテキストをつかむ

c# html html-agility-pack

質問

HTML:

<strong>Capture Date/Time:</strong> August 1, 2012 1:05:00 PM EST<br>
<strong>Instructor:</strong> Ash<br>
<strong>Instructor Email:</strong> email@email.com<br>
<strong>Course ID:</strong> Course321<br>

各強固なノードの右側にテキストを表示するにはどうすればよいでしょうか?

たとえば、コースIDを取得するために、私は "Course321"の文字列で終わった。

コード:

private string getCourseID()
{
    foreach (HtmlAgilityPack.HtmlNode strong in htmlDoc.DocumentNode.SelectNodes("//strong"))
    {
        string innerText = strong.InnerText;

        if (innerText.Contains("Course ID"))
        {
            //select the outer text
            //return outertext;
        }
    }
}

現在のコード:

private string getCourseID()
{
    HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();

    string value = "Error";

    foreach (HtmlAgilityPack.HtmlNode strong in htmlDoc.DocumentNode.SelectNodes("//strong"))
    {
        string innerText = strong.InnerText;

        if (innerText.Contains("Course ID"))
        {
            HtmlAgilityPack.HtmlNode sibling = strong.SelectSingleNode("following-sibling::text()");

            value = sibling.InnerText.Trim();

            MessageBox.Show(value);
        }
    }

    return value;
}

受け入れられた回答

次の兄弟:: * XPath軸の使用:

HtmlNode sibling = strong.SelectSingleNode("following-sibling::text()");
Console.WriteLine("Course ID = " + sibling.InnerText.Trim());

人気のある回答

自分のXPathofobiaを共有している人のために、これは兄弟(複数)に強いタグを付けることです:

new HtmlDocument().LoadHtml("blah blah blah").DocumentNode.DescendantsAndSelf().Where (dn => dn.Name == "strong").Select (dn => dn.NextSibling.InnerText)


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