# XPath mit SAXON: Codebeispiel



## Skalar- (5. März 2009)

Hallo,

hat jemand vlt. ein beispiel, wie man an ein xml-dokument mit xpath in java ein Abfrage stellt und das ergebnis dann ausgiebt. und das alles mit Saxon.

Habe bis jetzt immer mit JAXP (darunter xerces) gearbeitet. Jedoch ist dieser sehr langsam (und nicht XPath 2.0-tüchtig).

Ich habe schon viel gesucht und bin leider nicht fündig geworden.

Saxon will nicht wirklich unter dem JAXP-interface arbeiten, weil JAXP auf XPath 1.0 ausgerichtet ist: http://www.nabble.com/XPath-evaluate-not-working-as-expected-td21506783.html Im Link (bekomme übrigens die gleiche Fehlermeldung wie der Threadstarter dort) rät der Saxon-author zum Nutzen der Saxon Api. Leider weiß ich nicht, wie ich mir daraus etwas laufendes bauen soll.

Hilfe!


----------



## Thomas Darimont (5. März 2009)

Hallo,

schau mal hier:
http://www.tutorials.de/forum/xml/163666-xslt-prozessor-saxon-zum-ueben.html

Ansonsten schau mal hier:

```
package de.tutorials.training;

import java.io.StringReader;

import javax.xml.transform.stream.StreamSource;

import net.sf.saxon.sxpath.XPathEvaluator;

public class SaxonXPathExample {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		System.out
				.println(new XPathEvaluator()
						.createExpression(
								"sum(for $x in /order/item return $x/@price * $x/@quantity)")
						.evaluateSingle(
								new StreamSource(
										new StringReader(
												"<order>" +
												   "<item price='2.99' quantity='2'/>" +
												   "<item price='1.99' quantity='3'/>" +
												"</order>"))));

	}
}
```

Ausgabe:

```
11.95
```

Btw. Informationen zu den Neuerungen in XPath 2.0 im Vergleich zu XPath 1.0 findet man hier:
http://www.xml.com/pub/a/2002/03/20/xpath2.html

Gruß Tom


----------

