2011-01-13 6 views
1

Folgendes ist alles in JavaScript.Zugriff auf Attribut- und Textwerte von Elementen in XPathResult?

Ich habe die folgende XML

<Hotels> 
    <Hotel category='standard'>Hotel 1</Hotel> 
    <Hotel category='superior'>Hotel 2</Hotel> 
</Hotels> 

Meine 'Ergebnisse' von meinem XPath ("// Hotel") mit einer Länge von ein Array zurückgibt 2.

Was mache ich als nächstes zu bekommen bei den Kategoriewerten und dem Text.

dh results[0].???? //will give me category value

und results[0].???? //will give me the text

+0

"Hotel 1 Hotel 2" sieht nicht wie XML aus. Welche Sprache benutzt du? –

+0

Das Ergebnis ist ein Knotensatz. Also für jeden Knoten @ Kategorie geben Sie die Kategorie und Text() gibt Ihnen den Text – time4tea

+0

Sie sind nur Namen von Hotels – nexar

Antwort

0

meine 'Ergebnisse' von meinem XPath ("// Hotel") mit einer Länge ein Array zurückgibt von 2.

, was muss ich tun neben der Kategorie Werte und den Text zu bekommen.

können Sie beide wählen Sie das category Attribut und den Text Kind einen einzigen XPath-Ausdruck mit:

/*/Hotel/@category | /*/Hotel/text() 

Die Reihenfolge der Ergebnisse kann auf der XPath-Engine der Benutzung ab, ist aber in der Regel Dokument -Auftrag.

So mit dem mitgelieferten XML-Dokument:

<Hotels> 
    <Hotel category='standard'>Hotel 1</Hotel> 
    <Hotel category='superior'>Hotel 2</Hotel> 
</Hotels> 

der oben XPath-Ausdruck wählt vier Knoten: das category Attribut des ersten Hotel Elements, das Text-Knoten Kind des ersten Hotel Elements, das category Attribut des 2. Hotel Element und der Text-Knoten Kind des 2. Hotel Element

+0

Danke Dimitre aber wie bekomme ich die Werte von diesen Knoten? – nexar

+0

@nexar: Dies hängt von der jeweiligen XPath-Engine ab, die Sie verwenden. Normalerweise wird der XPath-Ausdruck durch Aufrufen einer Methode namens 'SelectNodes()' ausgewertet und gibt ein Ergebnis vom Typ 'XmlNodeList' zurück, so dass Sie das Ergebnis durchlaufen müssen, um zu den einzelnen 'XmlNode'-Objekten zu gelangen. Sie müssen Ihre XPath/DOM-Dokumentation lesen. –

+0

Auch die andere Frage, die ich habe, ist woher weiß ich, welche der 4 zurückgegebenen Knoten beziehen sich auf "Kategorie" und welche zu Text() oder ist das auch etwas, das abhängig ist von der bestimmten XPath-Engine? – nexar

Verwandte Themen