获取忽略特定id的元素的innerHtml

时间:2014-05-13 15:40:16

标签: c# html-agility-pack

我试图从innerHTML获取div,但我需要忽略其中具有特定ID的divs

在下面的示例中,我需要获取所有#data innerHtml但忽略div#ignoreme

<div id="data">
    <div id="ignoreme">ignore</div>
    <p>line</p>
    this is another line
</div>

我尝试了doc.DocumentNode.SelectSingleNode("//*[@id='data']").SelectNodes("//*[not(@id='ignoreme')]");

但它不起作用,这总是返回完整的html文档(!?)

那么,这是否可以使用html agility pack,XPath?

1 个答案:

答案 0 :(得分:1)

试试这个:

var sol = doc.DocumentNode.SelectSingleNode("//*[@id='data']")
           .SelectNodes(".//*[not(@id='ignoreme')]").ToList();

或者你可以这样做:

var sol1 = doc.DocumentNode.SelectSingleNode("//*[@id='data']")
                .Descendants()
                .Where(p => p.Id != "ignoreme")
                .ToList();