我试图从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?
答案 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();