XPath는 XML Path Language이며 XML 문서의 특정 부분을 결정하는 데 사용되는 언어입니다. XPath는 XML 유사 트리 구조를 기반으로하여 데이터 구조 트리에서 노드를 찾을 수 있습니다. 처음에 XPath의 원래 의도는 Xpointer와 XSL 사이의 일반적인 구문 모델로 사용하는 것이 었습니다. 그러나 XPath는 개발자에 의해 소규모 쿼리 언어로 빠르게 채택되었습니다.
xpathtest.java
코드 사본은 다음과 같습니다.
패키지 com.hongyuan.test;
import java.io.file;
import java.io.ioexception;
import javax.xml.parsers.documentBuilder;
import javax.xml.parsers.documentbuilderfactory;
import javax.xml.parsers.parserconfigurationException;
import javax.xml.xpath.xpath;
import javax.xml.xpath.xpathconstants;
import javax.xml.xpath.xpathexpressionException;
import javax.xml.xpath.xpathfactory;
import org.w3c.dom.document;
import org.w3c.dom.node;
import org.w3c.dom.nodelist;
import org.xml.sax.saxexception;
공개 클래스 XPathTest {
public static void main (String [] args)은 parserconfigurationException을 던지고,
saxException, ioException, XPathExpressionException {
// 파일을 구문 분석하고 문서 개체를 생성합니다
DocumentBuilder Builder = DocumentBuilDerfactory.NewInstance ()
.NewDocumentBuilder ();
문서 문서 = builder.parse (새 파일 ( "bookstore.xml"));
// XPath 객체를 생성합니다
xpath xpath = xpathfactory.newinstance (). newxpath ();
// 노드 값을 얻습니다
문자열 webtitle = (string) xpath.evaluate (
"/bookstore/book [@category = 'web']/title/text ()", 문서,
xpathconstants.string);
System.out.println (Webtitle);
System.out.println ( "========================================== ================================================== =================================================== ===========================================
// 노드 속성 값을 가져옵니다
문자열 webtitlelang = (string) xpath.evaluate (
"/bookstore/book [@category = 'web']/title/@lang", 문서,
xpathconstants.string);
System.out.println (webtitlelang);
System.out.println ( "========================================== ================================================== =================================================== ===========================================
// 노드 객체를 가져옵니다
노드 bookweb = (노드) xpath.evaluate (
"/bookstore/book [@category = 'web']", Document,
xpathconstants.node);
System.out.println (Bookweb.getNodename ());
System.out.println ( "========================================== ================================================== =================================================== ===========================================
// 노드 컬렉션을 가져옵니다
Nodelist Books = (Nodelist) xpath.evaluate ( "/Bookstore/Book", Document,
xpathconstants.nodeset);
for (int i = 0; i <books.getLength (); i ++) {
노드 북 = books.item (i);
system.out.println (xpath.evaluate ( "@category", book,
xpathconstants.string));
}
System.out.println ( "========================================== ================================================== =================================================== ===========================================
}
}
서점 .xml
코드 사본은 다음과 같습니다.
<? xml 버전 = "1.0"encoding = "utf-8"?>
<서점>
<Book Category = "Cooking">
<title lang = "en"> Everyday Italian </title>
<저자> Giada de Laurentiis </author>
<년> 2005 </year>
<price> 30.00 </price>
</book>
<book category = "children">
<title lang = "en"> Harry Potter </title>
<저자> J K. Rowling </author>
<년> 2005 </year>
<price> 29.99 </price>
</book>
<book category = "web">
<title lang = "en"> 학습 XML </title>
<저자> Erik T. Ray </author>
<년> 2003 </year>
<price> 39.95 </price>
</book>
</서점>
실행 효과