XML DOM XPathResult Objekt
- Vorherige Seite DOM XPathExpression
- Nächste Seite DOM XSLTProcessor
Das Ergebnis einer XPath-Abfrage.
Das XPathResult-Objekt
Das XPathResult-Objekt stellt den Wert eines XPath-Ausdrucks dar. Objekte dieses Typs werden Document.evaluate() und XPathExpression.evaluate() Rückkehr. XPath-Abfragen können als Zeichenkette, Zahl, boolescher Wert, Knoten und Liste von Knoten berechnet werden. Eine XPath-Implementierung kann die Liste von Knoten auf verschiedene Weise zurückgeben, daher ist dieser Objekt eine etwas komplexe API definiert, um das tatsächliche Ergebnis einer XPath-Abfrage zu erhalten.
Um ein XPathResult zu verwenden, überprüfen Sie zunächst das Attribut resultType. Es speichert einen XPathResult-Konstantenwert. Der Wert dieses Attributes teilt Ihnen mit, welche Attribute und Methoden verwendet werden müssen, um den Ergebnistyp zu bestimmen. Der Aufruf von Methoden, die nicht für den aktuellen resultType definiert sind, oder das Lesen von Attributen, die nicht für ihn definiert sind, führt zu Ausnahmen.
Internet Explorer unterstützt das XPathResult API nicht. Um XPath-Abfragen in Internet Explorer auszuführen, siehe Node.selectNodes() und Node.selectSingleNode() .
Konstanten des XPathResult-Objekts
Diese Konstanten definieren die möglichen Typen, die eine XPath-Abfrage zurückgeben kann. Das Attribut resultType des XPathResult-Objekts speichert einen dieser Werte und wird verwendet, um zu spezifizieren, welchen Typ das Objekt speichert. Diese Konstanten werden zusammen mit Document.evaluate() und XPathExpression.evaluate() verwendet, um den erwarteten Ergebnistyp zu spezifizieren.
Die folgenden Konstanten und ihre Bedeutung sind wie folgt:
- ANY_TYPE
- Geben Sie diesen Wert an Document.evaluate() oder XPathExpression.evaluate() weiter, um den akzeptierten Ergebnistyp zu spezifizieren. Das Attribut resultType setzt diesen Wert nicht.
- NUMBER_TYPE
- numbervalue speichert das Ergebnis.
- STRING_TYPE
- stringvalue speichert das Ergebnis.
- BOOLEAN_TYPE
- booleanValue speichert das Ergebnis.
- UNORDERED_NODE_ITERATOR_TYPE
- Dieses Ergebnis ist eine unsortierte Sammlung von Knoten, die nacheinander durch wiederholte Aufrufe von iterateNext() bis zum Rückgabewert null erreicht werden können. Während dieses Iterationsprozesses muss das Dokument nicht geändert werden.
- ORDERED_NODE_ITERATOR_TYPE
- Das Ergebnis ist eine Liste von Knoten, die nach den Attributen im Dokument geordnet sind. Man kann den Knoten nacheinander durch Aufruf von iterateNext() bis zum Rückgabewert null erreichen. Während dieses Iterationsprozesses muss das Dokument nicht geändert werden.
- UNORDERED_NODE_SNAPSHOT_TYPE
- Das Ergebnis ist eine Liste von zufällig zugänglichen Knoten. Das Attribut snapshotLength gibt die Länge der Liste an, und die Methode snapshotItem() gibt den Knoten an der angegebenen Indexposition zurück. Knoten können anders angeordnet sein als sie im Dokument vorkommen. Da dieses Ergebnis ein „Schnappschuss“ ist, bleibt es auch gültig, selbst wenn sich das Dokument ändert.
- ORDERED_NODE_SNAPSHOT_TYPE
- Dieses Ergebnis ist eine zufällig zugreifbare Knotenliste, ähnlich wie UNORDERED_NODE_SNAPSHOT_TYPE, nur dass diese Liste nach der Reihenfolge im Dokument geordnet ist.
- ANY_UNORDERED_NODE_TYPE
- Das Attribut singleNodeValue verweist auf einen Knoten, der mit der Abfrage übereinstimmt, ist jedoch null, wenn kein Übereinstimmungsknoten vorhanden ist. Wenn mehrere Knoten mit der Abfrage übereinstimmen, kann singleNodeValue jeder dieser Übereinstimmungsknoten sein.
- FIRST_ORDERED_NODE_TYPE
- singleNodeValue speichert den ersten Knoten im Dokument, der mit der Abfrage übereinstimmt, ist jedoch null, wenn kein Übereinstimmungsknoten vorhanden ist.
Instanzattribute des XPathResult-Objekts
Viele dieser Attribute sind nur gültig, wenn resultType einen bestimmten Wert speichert. Der Zugriff auf Attribute, die nicht für das aktuelle resultType definiert sind, führt zu einem Ausnahme.
- booleanValue
- Wenn der Wert von resultType auf BOOLEAN_TYPE gesetzt ist, wird der Ergebnisswert gespeichert.
- invalidIteratorState
- Wenn resultType ein Konstantenwert aus ITERATOR_TYPE ist und das Dokument geändert wurde, ist dieser Wert true; es macht den Iterator ungültig, da das Ergebnis bereits zurückgegeben wurde.
- numberValue
- Wenn der Wert von resultType auf NUMBER_TYPE gesetzt ist, wird der Ergebnisswert gespeichert.
- resultType
- Mit welchem Ergebnis die XPath-Abfrage zurückgegeben wird. Der Wert ist einer der oben aufgelisteten Konstanten. Der Wert dieser Eigenschaft zeigt an, welche anderen Attribute und Methoden verwendet werden können.
- singleNodeValue
- Wenn der Wert von resultType auf XPathResult.ANY_UNORDERED_NODE_TYPE oder XPathResult.FIRST_UNORDERED_NODE_TYPE gesetzt ist, wird der Ergebnisswert gespeichert.
- snapshotLength
- Wenn der Wert von resultType auf UNORDERED_NODE_SNAPSHOT_TYPE oder ORDERED_NODE_ITERATOR_TYPE gesetzt ist, wird die Anzahl der zurückgegebenen Knoten angegeben. Diese Eigenschaft wird gemeinsam mit snapshotItem() verwendet.
- stringValue
- Wird der Wert des Ergebnisses bei resultType STRING_TYPE gespeichert.
Methoden des XPathResult-Objekts
Methode | Beschreibung |
---|---|
iterateNext() | Wenn resultType UNORDERED_NODE_ITERATOR_TYPE oder ORDERED_NODE_ITERATOR_TYPE ist, wird diese Methode verwendet. |
snapshotItem() | Gibt den Knoten im festgelegten Index der Ergebnisliste zurück. Diese Methode kann nur verwendet werden, wenn resultType UNORDERED_NODE_SNAPSHOT_TYPE oder ORDERED_NODE_SNAPSHOT_TYPE ist. Die snapshotLength-Eigenschaft wird zusammen mit dieser Methode verwendet. |
Verwandte Seiten
- Vorherige Seite DOM XPathExpression
- Nächste Seite DOM XSLTProcessor