我正在使用HTML Agility包來解析Visual Studio中的ASPX文件。使用HTML敏捷性包查詢HTML的ID時出現異常
我正在搜索具有指定ID屬性的元素。
我正在使用的代碼是:
var html = new HtmlAgilityPack.HtmlDocument();
html.LoadHtml(docText);
if (html.DocumentNode != null)
{
try
{
var tagsWithId = html.DocumentNode.SelectNodes(string.Format("//[@id='{0}']", selector.Id));
然而,當我運行這段代碼會拋出異常「表達式的值必須爲節點集」。
誰能告訴我爲什麼這個「必須」評估爲節點集?爲什麼它不能簡單地返回節點(下一行調用tagsWithId.Count)?當然,SelectNodes方法返回的HtmlNodeCollection可以包含0個節點?
或者是由於格式錯誤的Xpath表達式導致的錯誤? [我正在測試這個選擇器ID肯定存在於文件中< div id =「thisId」>。]
是否可以直接從Visual Studio加載ASPX文件(我正在構建加載項),還是將包含XML錯誤,而我將不得不加載輸出HTML流(即,而不在頁面聲明在文件的開頭,等。)?
問得好(+1)。請參閱我的答案以獲取詳細解釋以及要使用的正確XPath表達式。 :) – 2010-07-04 15:36:22