如何为 HTML DOM 元素创建 XPATH?
Posted
技术标签:
【中文标题】如何为 HTML DOM 元素创建 XPATH?【英文标题】:how to create XPATH for a HTML DOM element? 【发布时间】:2010-11-22 22:07:21 【问题描述】:例如,“/html/BODY/DIV[1]/TABLE[1]/TR[2]/TD[1]/INPUT”。
给定一个 DOM 元素,如何获取这个 XPATH 字符串? 有什么想法吗?
谢谢,
达特巴约。
【问题讨论】:
【参考方案1】:我记得,firefox 的 xpath checker 扩展为您提供了一个点击式界面,用于获取 HTML 文档中 DOM 元素的 xpath。
【讨论】:
【参考方案2】:经过一番努力,我找到了办法。
与 DOM 路径一起使用每个节点的 SourceIndex。比如“/Html:1/Body:2/Div:5/Input:6”
但同样, 1.这可能不适用于动态页面(ajax修改内容)。 2. 这可能不是唯一的跨浏览器,因为 sourceIndex 可能会根据浏览器渲染引擎排列节点而在不同的浏览器中变化。 (虽然还不确定,只是一个想法)。
【讨论】:
【参考方案3】:在 Mozilla 中实现了一个 xpath generator 组件,尽管它从未成为默认版本。
您可以在我链接到的错误所附的“最终补丁”中找到测试,以了解如何使用它。您也可以查看它的实现,可能会有所帮助。
【讨论】:
【参考方案4】:可以新建一个domdocument,然后导入node元素
$DD= new DOMDocument('1.0', 'utf-8');
$DD->loadXML( "<html></html>" );
$DD->documentElement->appendChild($DD->importNode($DE,true));
然后你可以在 domelement 中使用 xpath:
$xpathe=new DOMXPath($DD);
【讨论】:
【参考方案5】:这是一个可能对您有所帮助的 chrome 扩展程序 (CromyQlip)
https://chrome.google.com/extensions/detail/bkmllkjbfbeephbldeflbnpclgfbjfmn
【讨论】:
以上是关于如何为 HTML DOM 元素创建 XPATH?的主要内容,如果未能解决你的问题,请参考以下文章