如何用java或javascript获取整个网站的xpath

如何用java或javascript获取整个网站的xpath,java,javascript,xpath,Java,Javascript,Xpath,嗨,当我给出url并得到整个网站的元素xpath时,我需要xpath 我有一个html文件,比如 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> &

嗨,当我给出url并得到整个网站的元素xpath时,我需要xpath

我有一个html文件,比如

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>Untitled Document</title>
   </head>
   <body>
   <h4>Test</h4>
    <input type="text" id="firstname" name="first" value="" />
   </body>
   </html>

如何使用javascript或java实现这一点。

当然可以为文档中的元素生成XPath表达式,但这种算法通常会实现一种方法,如果
h4
元素的结果是
/html/body/h4
,则
输入
元素的结果将是
/html/body/input
。您发布的示例是一个XHTML文档,其中元素位于名称空间
http://www.w3.org/1999/xhtml
这要求在XPath 1.0的XPath表达式中使用前缀。到目前为止,您的需求还没有得到很好的定义

要提供示例,请参见函数
makeXPath
,您可以为
document.body.getElementsByTagName('*')
中的所有元素调用该函数。该函数可能在文本/html上下文中执行,但它忽略名称空间。它使用了IE中不支持的DOM Level 3 XPath API。因此,将其作为解决问题的方法,而不是实现您的需求的完整答案

/html/body/h4

//*[@id="firstname"]