簡體   English   中英

為什么document.evaluate('。',document.body,null,XPathResult.ANY_TYPE,null).singleNodeValue引發異常?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM