XML DOM XPathResult 对象
XPathResult 对象的常量
如下常量定义了一个 XPath 查询可能返回的类型。XPathResult 对象的 resultType 属性保存了这些值中的一个,用来指定对象保存何种结果。这些常量与 Document.evaluate() 和
XPathExpression.evaluate() 一起使用,用来指定期待的结果类型。
这些常量及其含义如下:
- ANY_TYPE
- 把这个值传递给 Document.evaluate() 或 XPathExpression.evaluate() 来指定可接受的结果类型。属性 resultType 并不设置这个值。
- NUMBER_TYPE
- numbervalue 保存结果。
- STRING_TYPE
- stringvalue 保存结果。
- BOOLEAN_TYPE
- booleanValue 保存结果。
- UNORDERED_NODE_ITERATOR_TYPE
- 这个结果是节点的无序集合,可以通过重复调用 iterateNext() 直到返回 null 来依次访问。在此迭代过程中,文档必须不被修改。
- ORDERED_NODE_ITERATOR_TYPE
- 结果是节点的列表,按照文档中的属性排列,可以通过重复调用 iterateNext() 直到返回 null 来依次访问。在此迭代过程中,文档必须不被修改。
- UNORDERED_NODE_SNAPSHOT_TYPE
- 结果是一个随机访问的节点列表。snapshotLength 属性指定了列表的长度,并且 snapshotItem()
方法返回指定下标的节点。节点可能和它们出现在文档中的顺序不一样。既然这种结果是一个“快照”,因此即便文档发生变化,它也有效。
- ORDERED_NODE_SNAPSHOT_TYPE
- 这个结果是一个随机访问的节点列表,就像 UNORDERED_NODE_SNAPSHOT_TYPE,只不过这个列表是按照文档中的顺序排列的。
- ANY_UNORDERED_NODE_TYPE
- singleNodeValue 属性引用和查询匹配的一个节点,如果没有匹配的节点则为 null。如果有多个节点和查询匹配,singleNodeValue 可能是任何一个匹配节点。
- FIRST_ORDERED_NODE_TYPE
- singleNodeValue 保存了文档中的第一个和查询匹配的节点,如果没有匹配的节点,则为 null。
XPathResult 对象的实例属性
这里的很多属性只有当 resultType 保存了一个特定的值时才有效。访问并非为当前 resultType 定义的属性会导致异常。
- booleanValue
- 当 resultType 为 BOOLEAN_TYPE 时,保存结果值。
- invalidIteratorState
- 如果 resultType 是 ITERATOR_TYPE 常量中的一个并且文档已经修改,则为 true;它使迭代无效,因为结果已经返回。
- numberValue
- 当 resultType 为 NUMBER_TYPE 时,保存结果值。
- resultType
- 使用 XPath 查询返回何种结果。它的值是前面列出等常量之一。这个属性的值告诉你可以使用那些其他属性和方法。
- singleNodeValue
- 当 resultType 为 XPathResult.ANY_UNORDERED_NODE_TYPE 或 XPathResult.FIRST_UNORDERED_NODE_TYPE 时,保存结果值。
- snapshotLength
- 当 resultType 为 UNORDERED_NODE_SNAPSHOT_TYPE 或 ORDERED_NODE_ITERATOR_TYPE 时,指定返回的节点数。和 snapshotItem()
联合使用这一属性。
- stringValue
- 当 resultType 为 STRING_TYPE 时,保存结果值。
XPathResult 对象的方法
方法 |
描述 |
iterateNext() |
如果 resultType 是 UNORDERED_NODE_ITERATOR_TYPE 或 ORDERED_NODE_ITERATOR_TYPE,使用这个一方法。 |
snapshotItem() |
返回结果节点列表中指定下标的节点。这个方法只有在 resultType 是 UNORDERED_NODE_SNAPSHOT_TYPE 或 ORDERED_NODE_SNAPSHOT_TYPE
的时候才能使用。snapshotLength 属性和这个方法一起使用。 |