[英]Why does document.evaluate('.', document.body, null, XPathResult.ANY_TYPE, null).singleNodeValue throw an exception?
如果我告訴XPath評估程序我想要的是XPathResult.FIRST_ORDERED_NODE_TYPE
(8)或ANY_UNORDERED_NODE_TYPE
(9), ANY_UNORDERED_NODE_TYPE
得到body
元素,如預期的那樣-但所有其他結果類型都將產生一個The expression cannot be converted to return the specified type.
異常(在Firefox中; WebKit和Opera似乎不那么慷慨,僅將其命名為TYPE_ERR: DOM XPath Exception 52
。
到底是怎么回事? 並且,為了清楚起見,重新表述這個問題:為什么選擇上下文節點是類型錯誤,而不是明確地推斷為單節點結果,這從XPath表達式本身就很明顯( "."
,這是"self::node()"
的同義詞"self::node()"
),至少對我自己是人類?
(作為參考,並不是專門訪問.singleNodeValue
會觸發該錯誤-所有XPathResult的屬性都指示該錯誤。)
好吧,有一個規范http://www.w3.org/TR/DOM-Level-3-XPath/xpath.html#XPathResult-singleNodeValue明確說明了singleNodeValue
,如果resultType不是ANY_UNORDERED_NODE_TYPE,則會引發“ TYPE_ERR”或FIRST_ORDERED_NODE_TYPE。”。 實現遵循該規范。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.