【发布时间】:2010-12-25 20:50:16
【问题描述】:
使用 Firebug 或某些小书签时:
javascript:(function(){var a=document.createElement("script");a.setAttribute("src","http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js");if(typeof jQuery=="undefined"){document.getElementsByTagName("head")[0].appendChild(a)}(function(){if(typeof jQuery=="undefined"){setTimeout(arguments.callee,100)}else{jQuery("*").one("click",function(d){jQuery(this)[0].scrollIntoView();for(var e="",c=jQuery(this)[0];c&&c.nodeType==1;c=c.parentNode){var b=jQuery(c.parentNode).children(c.tagName).index(c)+1;b>1?(b="["+b+"]"):(b="");e="/"+c.tagName.toLowerCase()+b+e}window.location.hash="#xpath:"+e;prompt('Twoje wyrazenie:',e);d.preventDefault();d.stopPropagation();jQuery("*").unbind("click",arguments.callee)})}})()})();
我收到一个 HTML 的 XPath。为了通过 HTML Agility Pack 或 Sgml 解析 HTML,我需要将其转换为 XHTML (XML)。 但问题是(我认为)XHTML 的 XPath 与 HTML 的 XPath 不同。 这就是为什么 Firebug 的“XPath Copy”功能在与
一起使用时不起作用的原因HtmlNode valueNode = doc.DocumentNode.SelectSingleNode(Firebugs_XPath);
例如,firebug/bookmarklet 提供(如果我删除 tbody 将无济于事):
/html/body/div[2]/table/tbody/tr/td[2]/table/tbody/tr[2]/td[2]/form/table/tbody/tr[2]/td/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td[2]/u
正确的代码是(给予或接受):
/html/body/div/table/tr[1]/td[2]/table/tr[1]//td[2]/table[2]/tr[1]//td[2]/table/tr/tr/td[2]/u
我的问题是 - 如何修复该行为,以使 firebugXpath->HtmlAgilityPack 工作。 并且 - 这可能吗,使用带有内置 C# WebBrowser 组件的书签。
非常感谢您的帮助。
【问题讨论】: