从 W3Schools.cn 开始学习 WEB 编程技术

XML 教程

XML HOME XML Introduction XML How to use XML Tree XML Syntax XML Elements XML Attributes XML Namespaces XML Display XML HttpRequest XML Parser XML DOM XML XPath XML XSLT XML XQuery XML XLink XML Validator XML DTD XML Schema XML Server XML Examples XML Quiz

XML AJAX

AJAX Introduction AJAX XMLHttp AJAX Request AJAX Response AJAX XML File AJAX PHP AJAX ASP AJAX Database AJAX Applications AJAX Examples

XML DOM

DOM Introduction DOM Nodes DOM Accessing DOM Node Info DOM Node List DOM Traversing DOM Navigating DOM Get Values DOM Change Nodes DOM Remove Nodes DOM Replace Nodes DOM Create Nodes DOM Add Nodes DOM Clone Nodes DOM Examples

XPath 教程

XPath Introduction XPath Nodes XPath Syntax XPath Axes XPath Operators XPath Examples

XSLT 教程

XSLT Introduction XSL Languages XSLT Transform XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT on the Client XSLT on the Server XSLT Edit XML XSLT Examples

XQuery 教程

XQuery Introduction XQuery Example XQuery FLWOR XQuery HTML XQuery Terms XQuery Syntax XQuery Add XQuery Select XQuery Functions

XML DTD

DTD Introduction DTD Building Blocks DTD Elements DTD Attributes DTD Elements vs Attr DTD Entities DTD Examples

XSD Schema

XSD Introduction XSD How To XSD <schema> XSD Elements XSD Attributes XSD Restrictions

XSD Complex

XSD Elements XSD Empty XSD Elements Only XSD Text Only XSD Mixed XSD Indicators XSD <any> XSD <anyAttribute> XSD Substitution XSD Example

XSD Data

XSD String XSD Date XSD Numeric XSD Misc XSD Reference

Web Services

XML Services XML WSDL XML SOAP XML RDF XML RSS

参考手册

DOM Node Types DOM Node DOM NodeList DOM NamedNodeMap DOM Document DOM Element DOM Attribute DOM Text DOM CDATA DOM Comment DOM XMLHttpRequest DOM Parser XSLT Elements XSLT/XPath Functions

XPath 示例


让我们通过看一些示例来学习一些基本的XPath语法。


XML示例文档

我们将在下面的示例中使用以下XML文档。

"books.xml":

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book category="cooking">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

<book category="children">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

<book category="web">
  <title lang="en">XQuery Kick Start</title>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
</book>

<book category="web">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>

</bookstore>

View the "books.xml" file in your browser.



加载XML文档

所有现代浏览器都支持使用XMLHttpRequest对象加载XML文档。

var xmlhttp = new XMLHttpRequest();

旧浏览器(IE5和IE6)的代码可以在AJAX教程中找到。


选择节点

不幸的是,在不同的浏览器中处理XPath有不同的方法。

Chrome、Firefox、Edge、Opera和Safari使用evaluate()方法选择节点:

xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null);

Internet Explorer使用selectNodes()方法选择节点:

xmlDoc.selectNodes(xpath);

在我们的示例中,我们已经包含了应该适用于大多数主流浏览器的代码。


选择所有标题

以下示例选择所有标题节点:

实例

/bookstore/book/title
尝试一下 »

选择第一本书的标题

以下示例选择bookstore元素下第一个book节点的标题:

实例

/bookstore/book[1]/title
尝试一下 »

选择所有价格

以下示例从所有价格节点中选择文本:

实例

/bookstore/book/price[text()]
尝试一下 »

选择价格>35的价格节点

以下示例选择价格高于35的所有价格节点:

实例

/bookstore/book[price>35]/price
尝试一下 »

选择价格>35的标题节点

以下示例选择价格高于35的所有标题节点:

实例

/bookstore/book[price>35]/title
尝试一下 »