1

HTMLAgilityPackを使用しています。私はこのようなものを持っています:

<div class="address">
  <h3>Postadress</h3>
  <div class="box-address">Box  27 </div>
  <div class="post-address">
    16493 KISTA 
  </div>
</div>

問題は他にもあります<div class="address"><h3>そのため、 「Postaddress」というテキストの子を持つ子を見つける必要があります。抽出する必要があるのは、その値<div class="post-address">が「16493KISTA」です。他に<div class="post-address">も子供がいるレコードが返されますが、返されたくありません。私は<div class="post-address">子供がなく、裸のテキストしか含まれていないものを探しています。

これまでの私の解決策は次のとおりです。

var postAddressdiv = doc.DocumentNode.SelectNodes("//div[@class='address']");
if (postAddressdiv != null)
{
    foreach (HtmlAgilityPack.HtmlNode node in postAddressdiv)
    {
        HtmlNode postAddress;
        var h3 = node.Descendants("h3");
        if (h3 != null)
        {
            if (h3.First().LastChild.InnerHtml == "Postadress")
            {
                MessageBox.Show("right place you are.");
                postAddress = node.SelectSingleNode("//div[@class='post-address']");
                var postAddressChildren = postAddress.Descendants();
                if (postAddressChildren == null)
                    MessageBox.Show("found one!!!!");
            }
        }
    }
}

しかし、それは機能していません。私は何が間違っているのですか?ありがとう。

4

1 に答える 1

1
var nodes  = doc.DocumentNode
            .SelectNodes("//div[@class='address' and h3='Postadress']/div[@class='post-address']");
于 2012-11-19T14:51:39.080 に答える