A user account is required in order to edit this wiki, but we've had to disable public user registrations due to spam.
To request an account, ask an autoconfirmed user on Chat (such as one of these permanent autoconfirmed members).
DOM XPath
Jump to navigation
Jump to search
If someone ever decides to write down DOM XPath (i.e. a proper version of the DOM3XPath note), take this into account:
- Integrate the XPath part of the section Interactions with XPath and XSLT from HTML.
- Make it clear that contrary to XPath 1.0 multiple Text nodes can indeed be returned, even if they are siblings. The DOM is not the XML InfoSet. (As is the case in WebKit and Gecko today.)
- Simplifications: http://lists.w3.org/Archives/Public/public-webapps/2011AprJun/0310.html
- Exceptions: https://bugzilla.mozilla.org/show_bug.cgi?id=743888
WebIDL interfaces
interface XPathResult { const unsigned short ANY_TYPE = 0; const unsigned short NUMBER_TYPE = 1; const unsigned short STRING_TYPE = 2; const unsigned short BOOLEAN_TYPE = 3; const unsigned short UNORDERED_NODE_ITERATOR_TYPE = 4; const unsigned short ORDERED_NODE_ITERATOR_TYPE = 5; const unsigned short UNORDERED_NODE_SNAPSHOT_TYPE = 6; const unsigned short ORDERED_NODE_SNAPSHOT_TYPE = 7; const unsigned short ANY_UNORDERED_NODE_TYPE = 8; const unsigned short FIRST_ORDERED_NODE_TYPE = 9; readonly attribute unsigned short resultType; readonly attribute unrestricted double numberValue; // Maybe "DOMString?". readonly attribute DOMString stringValue; readonly attribute boolean booleanValue; readonly attribute Node singleNodeValue; readonly attribute boolean invalidIteratorState; readonly attribute unsigned long snapshotLength; Node? iterateNext(); Node? snapshotItem(unsigned long index); }; interface XPathExpression { XPathResult evaluate(Node contextNode, unsigned short type, object? result); }; callback interface XPathNSResolver { DOMString? lookupNamespaceURI(DOMString? prefix); }; [Constructor] interface XPathEvaluator { XPathExpression createExpression(DOMString expression, XPathNSResolver? resolver); XPathNSResolver createNSResolver(Node nodeResolver); XPathResult evaluate(DOMString expression, Node contextNode, XPathNSResolver? resolver, unsigned short type, object? result); }; Document implements XPathEvaluator;
Indeed, you can both construct this object and access its methods on Document. Isn't the world wonderful?