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: Difference between revisions

From WHATWG Wiki
Jump to navigation Jump to search
(Make stuff nullable)
(Add some more)
Line 8: Line 8:
== WebIDL interfaces ==
== WebIDL interfaces ==
<pre>
<pre>
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);
};
[Constructor]
[Constructor]
interface XPathEvaluator {
interface XPathEvaluator {
Line 13: Line 37:
                                       XPathNSResolver? resolver);
                                       XPathNSResolver? resolver);
   XPathNSResolver    createNSResolver(Node? nodeResolver);
   XPathNSResolver    createNSResolver(Node? nodeResolver);
   object            evaluate(DOMString expression,  
   XPathResult        evaluate(DOMString expression,  
                               Node? contextNode,  
                               Node? contextNode,  
                               XPathNSResolver? resolver,  
                               XPathNSResolver? resolver,  

Revision as of 18:12, 6 March 2013

If someone ever decides to write down DOM XPath (i.e. a proper version of the DOM3XPath note), take this into account:

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);
};

[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?