XPath هي لغة مسار XML ، وهي لغة تستخدم لتحديد جزء معين من مستند XML. يعتمد XPath على بنية شجرة تشبه XML ، مما يوفر القدرة على العثور على العقد في شجرة بنية البيانات. في البداية ، كانت النية الأصلية لـ XPath هي استخدامه كنموذج بناء جملة عام بين XPointer و XSL. ولكن تم تبني XPath بسرعة من قبل المطورين كلغة استعلام صغيرة.
xPathtest.java
نسخة الكود كما يلي:
حزمة com.hongyuan.test ؛
استيراد java.io.file ؛
استيراد java.io.ioException ؛
استيراد javax.xml.parsers.documentBuilder ؛
استيراد javax.xml.parsers.documentBuilderFactory ؛
استيراد javax.xml.parsers.ParserConfigurationException ؛
استيراد javax.xml.xpath.xpath ؛
استيراد javax.xml.xpath.xpathconstants ؛
استيراد javax.xml.xpath.xpathexpressionexception ؛
استيراد javax.xml.xpath.xpathfactory ؛
استيراد org.w3c.dom.document ؛
استيراد org.w3c.dom.node ؛
استيراد org.w3c.dom.nodelist ؛
استيراد org.xml.sax.saxexception ؛
الفئة العامة xPathtest {
الفراغ الثابت العام (سلسلة [] 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 ("============================================= ================== ================================ ================================================== =============================================
// احصل على قيمة سمة العقدة
String WebTitLelang = (String) xPath.evaluate (
"/bookstore/book [@category = 'web']/title/@lang" ، وثيقة ،
xPathconstants.String) ؛
System.out.println (WebTitlelang) ؛
System.out.println ("============================================= ================== ================================ ================================================== =============================================
// احصل على كائن العقدة
Node BookWeb = (Node) xPath.evaluate (
"/bookstore/book [@category = 'web']" ، وثيقة ،
xPathconstants.node) ؛
System.out.println (bookWeb.getNodename ()) ؛
System.out.println ("============================================= ================== ================================ ================================================== =============================================
// احصل على مجموعة العقدة
كتب Nodelist = (NodeList)
xPathconstants.nodeset) ؛
لـ (int i = 0 ؛ i <books.getLength () ؛ i ++) {
book node = books.item (i) ؛
system.out.println (
xPathconstants.String) ؛
}
System.out.println ("============================================= ================== ================================ ================================================== =============================================
}
}
Bookstore.xml
نسخة الكود كما يلي:
<؟
<Bookstore>
<Book Category = "Cooking">
<title lang = "en"> كل يوم إيطالي </title>
<uption> giada de laurentiis </uphor>
<Year> 2005 </naim>
<price> 30.00 </Price>
</book>
<Book Category = "Kids">
<title lang = "en"> Harry Potter </itlem>
<uption> J K. Rowling </uphor>
<Year> 2005 </naim>
<price> 29.99 </Price>
</book>
<Book Category = "Web">
<title lang = "en"> التعلم xml </title>
<uption> Erik T. Ray </uphor>
<Year> 2003 </neaf>
<price> 39.95 </Price>
</book>
</bookstore>
تأثير الجري