2013-04-24 102 views
2

我正在嘗試學習XPath並遇到問題。我用來檢索一些文本,獲取相應的dom元素並詢問其值。例如:如果我編碼的Greasemonkey腳本,我的瀏覽器是:http://en.m.wikipedia.org/wiki/Hello_World然後,我做的:如何使用XPath替換getElementById(「id」)。textContent句子?

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

所以,我需要做同樣的使用XPath。我曾嘗試過:

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

但我真的不明白爲什麼它不起作用。我認爲是xpathExpression,但我找不到指南,它顯示相當於getElementByIdgetElementsByTagnamegetElementByClassName句子。

你能幫我嗎?

回答

2

等同:

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

getElementsByTagname(tagname); 
//tagname 

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

謝謝SOOOOOO多! – gal007 2013-04-24 18:47:41

+0

我用XPathResult.STRING_TYPE代替 – gal007 2013-04-24 18:52:45

+0

var xpathResult = document.evaluate(「// * [@ id ='section_0']」,document,null,XPathResult.STRING_TYPE,null); console.log(xpathResult.stringValue); – gal007 2013-04-24 18:53:43

1

你的XPath應該是:

//*[@id="section_0"]