Laden...

XPathNavigator: Rückgabewert von SelectSingleNode()

Erstellt von Jack_AI vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.264 Views
J
Jack_AI Themenstarter:in
193 Beiträge seit 2007
vor 13 Jahren
XPathNavigator: Rückgabewert von SelectSingleNode()

Hallo Community,

ich habe mich heute zum ersten Mal mit XPath (für XML) beschäftigt. Bisher gefällt es mir sehr gut. Zumindest besser als der "konventionelle" Ansatz für XML-Parsing.

Eine Sache finde ich allerdings merkwürdig: Die Methode SelectSingleNode() des XPathNavigators. Da habe ich heute stundenlang an einer XPath-Expression gebastelt, ohne dass sich etwas am Ergebnis geändert hat, bis mir schließlich aufgefallen ist, dass SelectSingleNode einen Rückgabewert besitzt. Und zwar eine neue XPathNavigator-Instanz!

Meine Vorgehensweise war also, dass ich über XPathDocument.CreateNavigator() einen Navigator erzeuge... und im nächsten Schritt den frisch erzeugten Navigator mit einer neuen Instanz durch SelectSingleNode() überschreibe! Also xnavigator = xnavigator.SelectSingleNode(...).

Hat das so seine Richtigkeit? Mir kommt das sehr merkwürdig vor, vor allem in Bezug auf den Speicher, den diese neue Instanz ja reservieren muss.

Gruß und Dank,
Jack

J
Jack_AI Themenstarter:in
193 Beiträge seit 2007
vor 13 Jahren

Okay, ist auch nicht so wichtig. Würde mich aber nach wie vor interessieren.

Eine andere Frage zu XPath:
Ich kann absolute Nodes per SelectSingleNode() und Select() anwählen. Dabei wird, soweit ich das richtig verstanden habe, eine neue Instanz von XPathNavigator bzw. XPathNodeIterator erzeugt.

Wenn nun diese neue Instanz auf einen Knoten verweist, gibt es eine Möglichkeit von dort aus wieder auf einen absoluten Knoten zu springen? SelectSingleNode und Select fangen mit dem Suchen wieder von Dokumentanfang an. Ich hätte aber gerne, dass sie vom zuletzt gefundenen Knoten beginnen.

Gruß,
Jack