可以使用xpath访问html元素吗?
它必须在interenet资源管理器中运行,我在javascript中编写
我试图在特定行中获取特定输入框的值,但我不想迭代遍历所有单元格以获得正确的输入框
任何帮助将不胜感激
艾玛
答案 0 :(得分:13)
您可以使用以下内容访问具有已知XPATH的元素
document.evaluate(“X_PATH_EXPRESSION”,document,null, XPathResult.ANY_TYPE,null).iterateNext()
例如,访问ID为myID
的元素document.evaluate(“// * [@ id ='myID']”,document,null, XPathResult.ANY_TYPE,null).iterateNext()
我用firefox 3.6测试了这个。
答案 1 :(得分:4)
不幸的是,您不能仅使用Javascript和HTML来使用XPath,但大多数Javascript框架都有选择器,可以为您提供类似XPath的功能(例如jQuery)
编辑:您可以使用浏览器特定的xpath apis,但我不建议在没有抽象的情况下使用它们。
答案 2 :(得分:1)
在IE中,xpath查询使用:
完成xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("books.xml");
xmlDoc.selectNodes(xpath);
请参阅http://www.w3schools.com/XPath/xpath_examples.asp
然而,这仅适用于xml。对于html上的xpath查询,您需要第三方库,如http://dev.abiss.gr/sarissa/
另见Different results selecting HTML elements with XPath in Firefox and Internet Explorer以前的相关讨论
答案 3 :(得分:1)
如果HTML符合XHTML,那么从技术上讲,应该可以通过XPath访问元素。但总的来说,它看起来效果不佳。特别是因为您希望使用客户端计算机上安装的任何XPath库来执行此客户端操作。不是很有用,可能会失败。
但是,使用HTML,您可以指定类和名称来标识页面中的某些元素,JavaScript具有许多可以使用这些方法的函数。有关简单示例,请参阅http://onlinetools.org/articles/unobtrusivejavascript/chapter2.html。基本上,JavaScript本身支持HTML DOM,但不支持XML DOM。