【发布时间】:2012-11-19 14:39:23
【问题描述】:
我正在使用 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">s。
所以我必须找到一个有<h3> 孩子的那个,上面写着“邮政地址”。
我需要提取的是<div class="post-address"> 的值,即“16493 KISTA”。
<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!!!!");
}
}
}
}
但它不起作用。我究竟做错了什么?谢谢。
【问题讨论】:
-
为什么“不工作”?
标签: c# .net html xpath html-agility-pack