XPath-Basisoperationen ausführen

Für die Auswertung von XPath-Ausdrücken können Sie die mit XFactory.prepareXPath-Methoden erstellten Instanzen von XPathExecutable verwenden.

Informationen zu diesem Vorgang

XPath-Ausdrücke können mit einem JAXP-Objekt oder einem einfachen Java™-Zeichenfolgeobjekt an die Methode XFactory.prepareXPath übergeben werden. Die resultierende XPathExecutable-Instanz ist threadsicher und kann für die Auswertung eines XPath-Ausdrucks in mehreren XML-Dokumenten wiederverwendet werden.

Vorgehensweise

Beispiel

Das folgende Basisbeispiel zeigt die Vorbereitung und Ausführung eines interpretierten XPath-Ausdrucks.
// Zeichenfolge für den XPath-Ausdruck erstellen
String expression = "/doc/something";

// Factory erstellen
XFactory factory = XFactory.newInstance();

// Ausführbares XPath-Objekt für den Ausdruck erstellen
XPathExecutable xPathExecutable = factory.prepareXPath(expression);

// XML-Eingabequelle erstellen
String xml = "<doc><something>something is selected</something></doc>";

// Ausdruck ausführen und Ergebnisse in einem XSequenceCursor speichern
XSequenceCursor xSequenceCursor = xPathExecutable.execute(new StreamSource(new ByteArrayInputStream(xml.getBytes())));
Das folgende Basisbeispiel zeigt die Vorbereitung und Ausführung eines kompilierten XPath-Ausdrucks.
// Zeichenfolge für den XPath-Ausdruck erstellen
String expression = "/doc/something";

// Factory erstellen
XFactory factory = XFactory.newInstance();

// Neuen statischen Kontext aus der Factory erstellen
XStaticContext xStaticContext = factory.newStaticContext();

// Kompilierungsmodus für den Prozessor festlegen
xStaticContext.setUseCompiler(true);

// Ausführbares XPath-Objekt für den Ausdruck erstellen
XPathExecutable xPathExecutable = factory.prepareXPath(expression, xStaticContext);

// XML-Eingabequelle erstellen
String xml = "<doc><something>something is selected</something></doc>";

// Ausdruck ausführen und Ergebnisse in einem XSequenceCursor speichern
XSequenceCursor xSequenceCursor = xPathExecutable.execute(new StreamSource(new ByteArrayInputStream(xml.getBytes())));
Das folgende Basisbeispiel zeigt die Vorbereitung und Ausführung von interpretierten XPath-Ausdrücken mit Schemavalidierung.
// Zeichenfolge für den XPath-Ausdruck erstellen
String expression = "/doc/byte cast as my:derived1-byte-enumeration-Type";

// Factory erstellen
XFactory factory = XFactory.newInstance();
            
// Schemaquelle erstellen
String schema = "<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'" +
          " targetNamespace='http://www.schematype.ibm.com/UDSimple'" +
          " xmlns:my='http://www.schematype.ibm.com/UDSimple'" +
          " xmlns:smokey='http://www.schematype.ibm.com/UDSimple'>"
          + "  <xsd:simpleType name='derived1-byte-enumeration-Type'>"
          + "   <xsd:restriction base='xsd:byte'>"
          + "     <xsd:enumeration value='1' />"
          + "     <xsd:enumeration value='-1' />"
          + "     <xsd:enumeration value='0' />"
          + "     <xsd:enumeration value='127' />"
          + "     <xsd:enumeration value='-128' />"
          + "     <xsd:enumeration value='32' />"
          + "     <xsd:enumeration value='-32' />"
          + "     <xsd:enumeration value='8' />"
          + "     <xsd:enumeration value='-8' />"
          + "     <xsd:enumeration value='2' />"
          + "     <xsd:enumeration value='-2' />"
          + "   </xsd:restriction>"
          + "  </xsd:simpleType>"
          + "</xsd:schema>";
// Schema laden
factory.registerSchema(new StreamSource(new ByteArrayInputStream(schema.getBytes())));
            
// Validierung aktivieren
factory.setValidating(true);
            
// Neuen statischen Kontext aus der Factory erstellen
XStaticContext xStaticContext = factory.newStaticContext();

// Neuen Namespace hinzufügen
xStaticContext.declareNamespace("my", "http://www.schematype.ibm.com/UDSimple");

// Ausführbares XPath-Objekt für den Ausdruck erstellen
XPathExecutable xPathExecutable = factory.prepareXPath(expression, xStaticContext);
            
// XML-Eingabequelle erstellen
String xml = "<doc>" +
             "    <byte>1</byte>" +
             "</doc>";

// Ausdruck ausführen und Ergebnisse in einem XSequenceCursor speichern
XSequenceCursor xSequenceCursor = xPathExecutable.execute(new StreamSource(new ByteArrayInputStream(xml.getBytes())));

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_ops_xpath
Dateiname:txml_ops_xpath.html