2017-03-23 33 views
0

所以我试图找出我的问题与xPath。我全新的,所以我想你可以帮助我(在JavaScript中)。JavaScript中的xPath不返回值

我得到这个简单的html文件:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>LOL</title> 
    </head> 
<body> 
    <h1>Hello</h1> 


    </body> 
</html> 

我想从H1提醒 “你好”。我写了这样的东西:

var xPath = document.evaluate("//h1", document, null, XPathResult.STRING_TYPE, null); 

alert(xPath); 

但它不工作,它不警报,并且不返回任何值。我错过了什么?

感谢您的帮助。

+0

您是在浏览器中运行此操作的吗?如果是这样,你在检查员的控制台窗口中出现错误? – Daz

回答

0

如果它不是强制使用XPath,你可以试试:

var message = document.querySelector("h1").textContent; 
alert(message); 

如果你仍然想使用XPath

var xPath = document.evaluate("//h1", document, null, XPathResult.ANY_TYPE, null); 
element = xPath.iterateNext(); 
alert(element.textContent); 
+0

是的,我知道。但我必须使用xPath。 –

+0

检查更新的答案 – Andersson

0

您的代码应该已经惊动了什么,一点点修改(注意.stringValue)它应该如预期那样提醒'你好':

var xPath = document.evaluate("//h1", document, null, XPathResult.STRING_TYPE, null); 
 
alert(xPath.stringValue);
<body> 
 
    <h1>Hello</h1> 
 
</body>

如果您的实际HTML具有默认名称空间(可能是XHTML),则会有不同的情况。要验证是否属于这种情况,请尝试查看忽略命名空间的以下XPath是否有效:

//*[local-name()='h1']