Obiekt XPathResult DOM XML

Wynik wyszukiwania XPath.

Obiekt XPathResult

Obiekt XPathResult reprezentuje wartość wyrażenia XPath. Obiekty tego typu są tworzonymi przez Document.evaluate() i XPathExpression.evaluate() Wróć. Wyszukiwanie XPath można obliczyć jako ciąg znaków, liczbę, wartość logiczną, węzeł oraz listę węzłów. Wyszukiwanie XPath może zwracać listę węzłów na różne sposoby, więc ten obiekt definiuje bardziej złożony API, aby uzyskać rzeczywiste wyniki zapytania XPath.

Aby użyć XPathResult, najpierw sprawdź atrybut resultType. Zawiera on stałą XPathResult. Wartość tego atrybutu mówi, które atrybuty i metody należy użyć do określenia wartości wyniku. Wywołanie metody lub odczytanie atrybutu, które nie są zdefiniowane dla bieżącego resultType, spowoduje wyjątek.

IE nie obsługuje API XPathResult. Aby wykonać zapytanie XPath w IE, zobacz: Node.selectNodes() i Node.selectSingleNode() .

Stałe obiektu XPathResult

Te stałe definiują typy, które może zwrócić zapytanie XPath. Atrybut resultType obiektu XPathResult przechowuje jedną z tych wartości, aby określić, jakiego wyniku oczekuje obiekt. Te stałe są używane razem z Document.evaluate() i XPathExpression.evaluate(), aby określić oczekiwany typ wyniku.

Te stałe i ich znaczenia są następujące:

ANY_TYPE
Przekazuj tę wartość do Document.evaluate() lub XPathExpression.evaluate(), aby określić akceptowalny typ wyniku. Atrybut resultType nie ustawia tej wartości.
NUMBER_TYPE
numbervalue przechowuje wynik.
STRING_TYPE
stringvalue przechowuje wynik.
BOOLEAN_TYPE
booleanValue przechowuje wynik.
UNORDERED_NODE_ITERATOR_TYPE
Wynik to niesporządkowana kolekcja węzłów, które można odwiedzać, powtarzając wywołanie iterateNext() do momentu zwrócenia null. W trakcie tej iteracji dokument nie może być modyfikowany.
ORDERED_NODE_ITERATOR_TYPE
Wynik to lista węzłów, uporządkowanych według atrybutów dokumentu. Można odwiedzać kolejne węzły, powtarzając wywołanie iterateNext() do momentu zwrócenia null. W trakcie tej iteracji dokument nie może być modyfikowany.
UNORDERED_NODE_SNAPSHOT_TYPE
Wynik to lista węzłów do losowego dostępu. Atrybut snapshotLength określa długość listy, a metoda snapshotItem() zwraca węzeł o określonym indeksie. Węzły mogą nie być uporządkowane w porządku, w którym pojawiają się w dokumencie. Jako że wynik jest 'rzutem', jest on ważny nawet jeśli dokument się zmienia.
ORDERED_NODE_SNAPSHOT_TYPE
Ten wynik jest listą węzłów do losowego dostępu, podobnie jak UNORDERED_NODE_SNAPSHOT_TYPE, ale lista jest uporządkowana według kolejności w dokumencie.
ANY_UNORDERED_NODE_TYPE
singleNodeValue odnosi się do węzła, który pasuje do zapytania, w przeciwnym razie null. Jeśli więcej niż jeden węzeł pasuje do zapytania, singleNodeValue może być dowolnym z pasujących węzłów.
FIRST_ORDERED_NODE_TYPE
singleNodeValue zapisuje pierwszy węzeł w dokumencie, który pasuje do zapytania, w przeciwnym razie null. Jeśli nie ma pasujących węzłów, zwraca null.

Właściwości instancji obiektu XPathResult

Wiele właściwości jest dostępnych tylko wtedy, gdy resultType zapisuje określoną wartość. Dostęp do właściwości niezdefiniowanych dla bieżącego resultType spowoduje wyjątek.

booleanValue
Kiedy resultType wynosi BOOLEAN_TYPE, zapisuje wartość wynikową.
invalidIteratorState
Jeśli resultType jest jedną z wartości stałych ITERATOR_TYPE i dokument został zmodyfikowany, wynosi true; sprawia to, że iteracja jest nieważna, ponieważ wynik został już zwrócony.
numberValue
Kiedy resultType wynosi NUMBER_TYPE, zapisuje wartość wynikową.
resultType
Który wynik zwraca zapytanie XPath. Jego wartość jest jednym z wymienionych powyżej stałych. Wartość tej właściwości mówi, które inne właściwości i metody można użyć.
singleNodeValue
Kiedy resultType wynosi XPathResult.ANY_UNORDERED_NODE_TYPE lub XPathResult.FIRST_UNORDERED_NODE_TYPE, zapisuje wartość wynikową.
snapshotLength
Kiedy resultType wynosi UNORDERED_NODE_SNAPSHOT_TYPE lub ORDERED_NODE_ITERATOR_TYPE, określa liczbę zwracanych węzłów. Współdziała z właściwością snapshotItem().
stringValue
Zapisuje wartość wyniku, gdy resultType wynosi STRING_TYPE.

Metody obiektu XPathResult

Metoda Opis
iterateNext() Jeśli resultType jest UNORDERED_NODE_ITERATOR_TYPE lub ORDERED_NODE_ITERATOR_TYPE, użyj tej metody.
snapshotItem() Zwraca węzeł określony przez indeks w liście wyników. Ta metoda może być używana tylko wtedy, gdy resultType jest UNORDERED_NODE_SNAPSHOT_TYPE lub ORDERED_NODE_SNAPSHOT_TYPE. Współpracuje z właściwością snapshotLength.

Strony związane

Document.evaluate() i XPathExpression.evaluate()