Set objXML = CreateObject("Microsoft.XMLDOM")
objXML.async = False
objXML.validateOnParse = False
objXML.resolveExternals = False
objXML.load("http://www.w3schools.com/dom/books.xml")
'objXML.setProperty "SelectionLanguage", "XPath"
For Each x In objXML.selectNodes("//book[@category='cooking' and @category='children']")
WScript.Echo x.text
Next
For Each y In objXML.selectNodes("//book[position()<3]")
WScript.Echo y.text
Next
當objXML.setProperty "SelectionLanguage", "XPath"
被註釋然後第一xpath表達式(x對象)被返回有效但第二xpath表達式(Y對象)引發錯誤:
msxml3.dll (14, 1) : Unknown method.
//book[-->position()<--<3]
如果我去掉objXML.setProperty "SelectionLanguage", "XPath"
既表達式工作。
我的問題是什麼時候必須明確設置XPath屬性,或者什麼樣的表達式在沒有設置此屬性的情況下執行?
優秀的答案!謝謝:) 我從來沒有聽說過「XSL模式」表達式。所以至少設置'CreateObject(「MSXML2.DOMDocument.4.0」)'確保XPath在所有榮耀 – theta 2012-07-13 02:04:35
不客氣。其實你應該使用6.0由於兩件事情。 1 - MSXML4只有32位,會造成麻煩。 2 - MSXML6最近有了對原生64位支持的改進。 – 2012-07-13 02:27:39
好的,謝謝你的提示;) – theta 2012-07-13 02:39:09