如何使用XPath替换getElementById(“id”)。textContent语句?

时间:2013-04-24 18:24:04

标签: javascript dom xpath

我正在尝试学习XPath,但我遇到了问题。我用来检索一些文本获取相应的dom元素并询问其值。例如:如果我正在编写Greasemonkey脚本并且我的浏览器位于:http://en.m.wikipedia.org/wiki/Hello_World,那么,我这样做:

alert(
   document.getElementById("section_0").textContent
);

所以,我需要对xpath做同样的事情。我试过了:

var xpathResult = document.evaluate( "//section_0", document, null, XPathResult.ANY_TYPE, null); 
alert(xpathResult);

但我真的不明白为什么它不起作用。我认为是xpathExpression,但我找不到相当于getElementByIdgetElementsByTagnamegetElementByClassName句子的指南。

你能帮助我吗?

2 个答案:

答案 0 :(得分:2)

等价物:

getElementById(someid)
//*[@id='someid']

getElementsByTagname(tagname);
//tagname

getElementsByClassName(classname)
//*[contains(concat(' ', @class, ' '),' classname ')]

答案 1 :(得分:1)

你的XPath应该是:

//*[@id="section_0"]