O XPath é o idioma do caminho XML, que é um idioma usado para determinar uma determinada parte do documento XML. O XPath é baseado na estrutura da árvore do tipo XML, proporcionando a capacidade de encontrar nós na árvore da estrutura de dados. A princípio, a intenção original do XPath era usá -lo como um modelo de sintaxe geral entre XPointer e XSL. Mas o XPath foi rapidamente adotado pelos desenvolvedores como uma pequena linguagem de consulta.
XpathTest.java
A cópia do código é a seguinte:
pacote com.hongyuan.test;
importar java.io.file;
importar java.io.ioException;
importar javax.xml.parsers.documentBuilder;
importar javax.xml.parsers.documentBuilderFactory;
importar javax.xml.parsers.parserConfigurationException;
importar javax.xml.xpath.xpath;
importar javax.xml.xpath.xpathconstants;
importar javax.xml.xpath.xpathExpressionException;
importar javax.xml.xpath.xpathFactory;
importar org.w3c.dom.document;
importar org.w3c.dom.node;
importar org.w3c.dom.nodelist;
importar org.xml.sax.saxException;
classe pública xpathtest {
public static void main (string [] args) lança ParserConfigurationException,
SaxException, IoException, XpathExpressionException {
// analisar o arquivo e gerar o objeto de documento
DocumentBuilder Builder = DocumentBuilderFactory.NewInstance ()
.NewDocumentBuilder ();
Documento documento = construtor.parse (novo arquivo ("bookstore.xml"));
// gerar objeto XPath
Xpath xpath = xpathFactory.NewInstance (). NewXPath ();
// Obtenha o valor do nó
String webtitle = (string) xpath.evaluate (
"/Bookstore/Book [@category = 'web']/title/text ()", documento,
XPathConstants.String);
System.out.println (webtitle);
System.out.println ("============================================ ================== ================================= =================================================== ===============================================
// Obtenha o valor do atributo do nó
String webtitlelang = (string) xpath.evaluate (
"/Bookstore/Book [@category = 'web']/title/@lang", documento,
XPathConstants.String);
System.out.println (webtitlelang);
System.out.println ("============================================ ================== ================================= =================================================== ===============================================
// Obtenha o objeto do nó
Nó bookweb = (nó) xpath.evaluate (
"/Bookstore/Book [@category = 'web']", documento,
Xpathconstants.node);
System.out.println (bookweb.getnodename ());
System.out.println ("============================================ ================== ================================= =================================================== ===============================================
// Obtenha a coleção de nós
Nodelist Books = (NodElist) xpath.Evaluate ("/Bookstore/Book", documento,
XPathConstants.Nodeset);
for (int i = 0; i <books.getLength (); i ++) {
Nó livro = books.item (i);
System.out.println (xpath.evaluate ("@category", livro, livro,
XPathConstants.String));
}
System.out.println ("============================================ ================== ================================= =================================================== ===============================================
}
}
Bookstore.xml
A cópia do código é a seguinte:
<? xml versão = "1.0" coding = "utf-8"?>
<Divroe>
<Livro category = "Cooking">
<título Lang = "en"> Everyday Italian </ititle>
<orthor> giada de laurentiis </eluthor>
<ear> 2005 </ear>
<preço> 30.00 </sice>
</book>
<Livro category = "Children">
<título lang = "en"> Harry Potter </title>
<Author> J. K. Rowling </eluthor>
<ear> 2005 </ear>
<preço> 29.99 </sice>
</book>
<Livro category = "web">
<title lang = "en"> aprendendo xml </ititle>
<orking> Erik T. Ray </eluthor>
<ano> 2003 </ear>
<preço> 39,95 </sice>
</book>
</livrarstore>
Efeito de corrida