XPath ist die XML -Pfadsprache, eine Sprache, die verwendet wird, um einen bestimmten Teil des XML -Dokuments zu bestimmen. XPath basiert auf der XML-ähnlichen Baumstruktur, die die Möglichkeit bietet, Knoten im Datenstrukturbaum zu finden. Zunächst bestand die ursprüngliche Absicht von XPath darin, es als allgemeines Syntaxmodell zwischen Xpointer und XSL zu verwenden. Aber XPath wurde von Entwicklern schnell als kleine Abfragesprache übernommen.
XPathtest.java
Die Codekopie lautet wie folgt:
Paket com.hongyuan.test;
Import Java.io.file;
importieren java.io.ioException;
importieren javax.xml.parsers.documentBuilder;
importieren javax.xml.parsers.documentBuilderFactory;
importieren javax.xml.parsers.parserConfigurationException;
importieren javax.xml.xpath.xpath;
importieren javax.xml.xpath.xpathConstants;
importieren javax.xml.xpath.xpathExpressionException;
importieren javax.xml.xpath.xpathfactory;
import org.w3c.dom.document;
import org.w3c.dom.node;
import org.w3c.dom.nodelist;
import org.xml.sax.saxexception;
öffentliche Klasse XPathtest {
öffentliche statische Leere Main (String [] args) löst ParserconfigurationException aus,
Saxexception, IOException, xpathexpressionException {
// analysieren die Datei und generieren Sie das Dokumentobjekt
DocumentBuilder Builder = DocumentBuilderFactory.Newinstance ()
.NewdocumentBuilder ();
Document document = builder.parse (neue Datei ("bookstore.xml"));
// XPath -Objekt generieren
Xpath xpath = xpathfactory.newinstance (). NewXPath ();
// Erhalten Sie den Knotenwert
String webtitle = (String) xpath.Valuate (
"/bookstore/book [@category = 'web']/title/text ()", Dokument,
XPathConstants.String);
System.out.println (Webtitle);
System.out.println ("================================================== ======================================================= ====================================================== =================================================
// den Knoten -Attributwert abrufen
String webtitlelang = (String) xpath.Valuate (
"/bookstore/book [@category = 'web']/title/@Lang", Dokument,
XPathConstants.String);
System.out.println (webtitlelang);
System.out.println ("================================================== ======================================================= ====================================================== =================================================
// Holen Sie sich das Knotenobjekt
Knoten bookWeb = (Knoten) xPath.Valuate (
"/bookstore/book [@category = 'web']", Dokument,
XPathConstants.node);
System.out.println (bookweb.getNodename ());
System.out.println ("================================================== ======================================================= ====================================================== =================================================
// Holen Sie sich die Knotensammlung
Nodelist books = (nodelist) xpath.Valuate ("/bookstore/book", document,
XPathConstants.nodeset);
für (int i = 0; i <books.getLength (); i ++) {
Node book = books.item (i);
System.out.println (xpath.egaluate ("@category", book, book,
XPathConstants.String));
}
System.out.println ("================================================== ======================================================= ====================================================== =================================================
}
}
bookstore.xml
Die Codekopie lautet wie folgt:
<xml Version = "1.0" coding = "utf-8"?>
<Bookstore>
<book category = "kochen">
<title Lang = "en"> Italiener alltäglich </title>
<autor> Giada de Laurentiis </Autor>
<Jahr> 2005 </Jahr>
<price> 30.00 </price>
</book>
<Book category = "Kinder">
<title Lang = "en"> Harry Potter </title>
<autor> J K. Rowling </Author>
<Jahr> 2005 </Jahr>
<Price> 29,99 </price>
</book>
<book category = "web">
<title Lang = "en"> Lernen xml </title>
<autor> Erik T. Ray </Autor>
<Jahr> 2003 </Jahr>
<Price> 39,95 </price>
</book>
</bookstore>
Laufeffekt