zoukankan      html  css  js  c++  java
  • XPath是一种XML文档的寻址语言

    什么是XPath ?
      

      -XPath是定义XML文档元素的语法规则集合
      
      
    -XPath使用路径定义XML元素
      
      
    -XPath定义标准函数库
      
      
    -XPath是XSLT主要元素
      
      
    -XPath不是XML格式
      
      
    -XPath是W3C制定的标准

    译者注:本文以XPath 1.0为基准。关于XPath 2.0另文介绍

    XPath类似传统的文件路径

      XPath使用路径表达式去确定XML文档的节点。这些路径与计算机系统使用的文件系统极为相似。
      例如:
      
      home/xml/index.html


    XPath 示例

    首先建立一个简单的XML文档,一个常见定单的部分内容

    <?xml version="1.0" encoding="GB2312"?>

    <order>
      
    <item>
        
    <itemNumber>C2688-67037</itemNumber>
        
    <description>LCD液晶显示器</description>
        
    <quantity>1</quantity>
        
    <price>358.00</price>
      
    </item>
        
    <item>
        
    <itemNumber>C2688-67061</itemNumber>
        
    <description>音箱</description>
        
    <quantity>1</quantity>
        
    <price>16.50</price>
      
    </item>
        
    <item>
        
    <itemNumber>C2688-67010</itemNumber>
        
    <description>鼠标</description>
        
    <quantity>1</quantity>
        
    <price>8.50</price>
      
    </item>
    </order>


    下面的XPath表达式选择ROOT元素order

    /order

    下面的XPath表达式选择元素order中的所有item元素

    /order/item

    下面的XPath表达式选择元素order下元素item中的所有price元素
    /order/item/price

    注释:用“/”路径开始代表元素的绝对路径


    XPath定义标准函数库

    下面的XPath表达式选择元素item中的所有price值大于12.60的元素
    /order/item[price>12.60]

    XPath用于XSLT

    XPath是XSLT标准的核心,没有XPath知识,不可能建立XSLT文挡

    XPath是为XSLT,XPointer及其他XML解析软件而设计。

    目前,W3C已推出功能更强大的XPath2.0版本

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

    XPath 语法规则

    XPath使用路径表达式去确定XML文档中的节点。

    我们将利用下面的XML文档描述XPath语法

    <?xml version="1.0" encoding="GB2312"?>

    <order>
      
    <item catalog="parts">
        
    <itemNumber>C2688-67037</itemNumber>
        
    <description>LCD液晶显示器</description>
        
    <quantity>1</quantity>
        
    <price>358.00</price>
      
    </item>
        
    <item catalog="parts">
        
    <itemNumber>C2688-67061</itemNumber>
        
    <description>音箱</description>
        
    <quantity>1</quantity>
        
    <price>16.50</price>
      
    </item>
        
    <item catalog="parts">
        
    <itemNumber>C2688-67010</itemNumber>
        
    <description>鼠标</description>
        
    <quantity>1</quantity>
        
    <price>8.50</price>
      
    </item>
    </order>

    节点定位:

    XML文挡可以表示为树结构节点形式
    XPath使用模式表达式识别XML文档的节点。

    一个XPath的模式是使用反斜杠“/”分开子元素名称描述路径

    下面的XPath表达式选择元素order下元素item中的所有price元素
    /order/item/price

    注释:用“/”路径开始代表元素的绝对路径.

    不用“/”路径开始代表元素的相对路径

    item/price

    用“//”路径开始代表整个文档满足条件的所有元素

    下面的XPath表达式选择文档中所有的item元素
    //item

    选择未知元素

    通配符 “*”可用于选择未知XML元素

    下面的XPath表达式选择元素order中的所有item元素所属的子元素

    /order/item/*

    下面的XPath表达式选择元素order下所有孙子辈的price元素
    /order/*/price

    下面的XPath表达式选择所有具有两个祖先的price元素
    /*/*/price

    下面的XPath表达式选择文档所有元素
    //*

    选择分支

    使用方括号[]可以指定特定的元素

    下面的XPath表达式选择元素order中的第一个item的子元素

    /order/item[1]

    下面的XPath表达式选择元素order中的最后一个item的子元素
    /order/item[last()]

    下面的XPath表达式选择元素order中具有price元素的item元素
    /order/item[price]

    下面的XPath表达式,从元素order中选择具有price等于12.60元素的item元素
    /order/item[price=16.50]

    下面的XPath表达式,从隶属于元素order的item元素中选择具有price等于12.60元素的price元素
    /order/item[price=16.50]/price

    选择几个路径

    在XPath表达式中,使用 "|" 运算符可以选择几个路径 。实质上是逻辑“与”操作

    下面的XPath表达式,从隶属于order的item元素中选择所有itemNumber 和description 元素 
    /order/item/itemNumber | /order/item/description


    下面的XPath表达式,从文档中选择所有itemNumber 和description 元素 
    //itemNumber | //description

    下面的XPath表达式,从文档中选择所有itemNumber ,description和price 元素 
    //itemNumber | //description | //price

    下面的XPath表达式,选取属于order中item下所有itemNumber元素和从文档中选择所有description元素 
    /order/item/itemnumber | //description

    选择属性
    在XPath中,所有属性使用@前缀

    下面的XPath表达式,选取所有名为catalog的属性
    //@catalog


    下面的XPath表达式,选取所有具有catalog属性的item元素
    //item[@catalog]

    下面的XPath表达式,选取所有具有任何属性的item元素
    //item[@*]

    下面的XPath表达式,选取所有具有catalog等于"parts"属性的item元素
    //item[@catalog="parts"]



    一个例子
     
    XmlDom1.selectNodes("/root/tblMarketSaleTask_Main[@FMONEY>120.000 and @FMARKETID>63 and @FDEPTID>1000 ]")
  • 相关阅读:
    现在分词和过去分词
    VMware Workstation Ubuntu 20.04 LTS无法连接网络问题
    Java中定时器Timer致命缺点(附学习方法)
    2020 年度编程语言排行榜出炉!C 语言称霸,Java 遭遇滑铁卢…….
    人工智能必备数学基础:线性代数基础(1)
    初学VBA
    何同学新视频火了!找到减少沉迷手机的最佳方法:附免费APP
    支付宝蚂蚁森林下线能量提醒功能 产品经理:被骂了、我改
    可抵御所有已知黑客攻击 中国组建天地一体化量子通信网络
    MYSQL数据库 增删改查基础语句
  • 原文地址:https://www.cnblogs.com/xiang/p/250063.html
Copyright © 2011-2022 走看看