Xpath,XQuery,DTD

一、Xpath

XPath 是一门在 XML 文档中查找信息的语言;XPath 是 XSLT 中的主要元素。XPath是W3C标准。
1、七种类型节点:元素、属性、文本、命名空间、处理指令、注释、文档节点;
2、节点关系(轴)

    parent               当前节点的父节点;
    child                当前节点的所有子节点;
    ancestor             当前节点的所有上级节点(父、祖父...);
    ancestor-or-self     当前节点的所有上级节点及节点本身;
    descendant           当前节点的所有下级节点(子、孙...);
    descendant-or-self   当前节点的所有下级节点及本身;
    preceding-sibling    当前节点之前的所有同级节点;
    following-sibling    当前节点之后的所有同级节点;
    following            当前节点之后的所有节点;
    preceding            当前节点之前的所有节点;
    namespace            当前节点的所有命名空间节点;
    attribute            当前节点的所有属性;
    self                 当前节点;   

3、选取节点方法:

    nodeName         选择此节点的所有子节点;
    /                从根节点选取;
    //               从匹配选择当前节点选择文档中的节点,而不考虑它们的位置;
    .                选取当前节点;
    ..               选取节点的父节点;
    @                选取属性;
    *                匹配任何元素节点;
    @*               匹配任何属性节点;
    node()           匹配任何类型的节点;
    name1|name2      选取所有name2和name1元素;

4、谓语

用来查找某个特定节点或者包含某个指定的值的节点,谓语被包含在方括号中;例:

    nodeName[1]            选取nodeName的第一个元素;
    nodeName[last()]      选取最后一个元素;
    nodeName[position()<3] 选取前两个元素;
    nodeName[@lang]        选择属性有lang的nodename元素;
    nodeName[@lang='eng']  选择属性lang的值为eng的元素;
    nodeName[price>30]     选取所有其中price元素大于30的nodeName元素;

5运算符:

+,-,*,div(除),mod(取余),=,!=,<,<=,>,>=,or,and

二、XQuery

1、XQuery 之于 XML 作用就类似于 SQL 之于数据库的作用,是用来查询XML数据,可以用来查询任何XML形态呈现的数据(包括数据库)
2、XQuery使用谓语来限定从文档所提取的数据;
3、XQuery对大小写敏感,其中的字符串可使用单引号或双引号;
4、变量由$并跟随一个名称来进行定义;
5、 :注释:
6、通用比较:=,!=,<,<=,>,>=;    
    值的比较:eq,ne,lt,le,gt,ge
7、doc("name.xml")        使用此函数来提取XML文档中的数据;    
    查询示例:doc("books.xml")/bookstore/book[price>30]/title      选取bookstore元素下所有的title元素,且price元素值大于30;
    使用FLWOR进行排序(for  let  where  order by  return):
    for $x in doc("books.xml")/bookstore/book
    where $x/price>30
    order by $x/title
    return $x/title    
8、使用data()函数来将获取到的数据展示出来
    向html元素插入查询到的元素示例:
    <ul>
        {
        for $x in doc("books.xml")/bookstore/book
        order by $x/title
        return <li>{data($x/title)}. Category: {data($x/@category)}</li>
        }
    </ul>    
9、自建函数格式
    declare function 前缀:name($para as datatype)
    AS 返回数据类型
    {    }

猜你喜欢

转载自www.cnblogs.com/aland-1415/p/9065337.html
DTD
今日推荐