//選擇不包含class屬性的節點 var result = node.SelectNodes(".//span[not(@class)]"); //選擇不包含class和id屬性的節點 var result = node.SelectNodes(".//span[not(@class) and not(@id)]"); //選擇不包含class="expire"的span var result = node.SelectNodes(".//span[not(contains(@class,'expire'))]"); //選擇包含class="expire"的span var result = node.SelectNodes(".//span[contains(@class,'expire')]");
另一種解析方式,假如我們需要根據div的class屬性是否包含post值來提取div中的InnerText:
<div id="post-405" class="post-405 post type-post status">inner text</div> <div id="post-105" class="post-105 post type-post status">inner text</div> <div id="post-5" class="post-5 post type-post status">inner text</div>
可以用以下方法來提取符合條件的所有HtmlNode節點
var results = doc.DocumentNode .Descendants("div") .Where(x=>x.Attributes.Contains("class") && x.Attributes["class"].Value.Contains("post"));
提取得到節點數據之后,根據實際處理即可。