现在的位置: 首页 > 综合 > 正文

什么是XPath?

2018年04月27日 ⁄ 综合 ⁄ 共 1041字 ⁄ 字号 评论关闭
XPath是一个获取XML文档中你所需要的节点元素的组件。它允许你用很少的代码就能获取指定的路径下你所选取的节点的值。例如,你有一个类似下面的XML文档:

程序代码 程序代码

<products>
 <product SKU="7123734">

  <name>Big Metal Pot</name>
  <price>19.95</price>
 </product>

 <product SKU="752585">
  <name>Plate</name>

  <price>12.95</price>
 </product>
 <product SKU="4182476">

  <name>Spoon</name>
  <price>4.95</price>

 </product>
</products>

你可以用下面的代码来获取产品的种类
myXPathDocument.selectNodes("/products/product");

你也可以用这样的代码来获得所有产品中价格超过5美圆的产品:
myXPathDocument.selectNodes("/products/product[./price > 5]");

你也可以获取所有的 SKUs 就像这样:
myXPathDocument.selectNodes("/products/product/@sku");  

---------------------------------------------------------------------------------------------------

XPath 规范基本上遵循与文件系统寻址相同的规则:

  • 如果 XPath 表达式以斜杠 (/) 开头,代表的是 XML 元素的绝对路径(从 XML 文档的根开始)。
  • 如果 XPath 表达式以双斜杠 (//) 开头,则会选择当前文档中符合指定条件的所有元素,而不考虑它们在 XML 文档中的位置。例如,//employee 会查找 XML 文档中的所有员工节点。
  • 星号 (*) 会选择由前面的路径定位的所有 XML 元素。例如,/company/department/* 选择一个部门的所有子节点,即该部门的所有员工。
  • 点 (.) 选择当前的节点,两个点 (..) 选择父节点。例如,用于选择某个员工所在的部门的 XPath 表达式就是 ../employee
  • 要选择属性,请使用 @ 字符。例如,/company/department/employee[@retired] 选择指定了 retired 属性的所有员工。

抱歉!评论已关闭.