一、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()<] 选取前两个元素;
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 返回数据类型
    {    }

三、DTD

1、DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块,可被声明于XML文档中,也可作为一个外部引用;
2、所有XML文档构成的模块:元素、属性、实体、PCDATA、CDATA
3、实体引用:&lt,&gt,&amp,&quot,&apos
4、元素声明:

    <!ELEMENT element-name category>    或    <!ELEMENT element-name (element-content)>
<!ELEMENT element-name EMPTY> 空元素
<!ELEMENT element-name(#PCDATA)> 只有PCDATA的元素
<!ELEMENT element-name ANY)> 带有任何内容的元素
<!ELEMENT element-name (childname1,...)> 带有子元素的元素
<!ELEMENT element-name (childname+)> 子元素最少出现一次
<!ELEMENT element-name (childname*)> 子元素出现一次或多次
<!ELEMENT element-name (childname?)> 子元素出现0次或一次
<!ELEMENT element-name (childname1|childname2)> 或

5、属性声明
    <!ATTLIST element-name attribute-name attribute-type attribute-value>
    属性类型(attribute-type):

    CDATA            字符数据
(va1|va2|...) 枚举
ID 唯一的ID
IDREF 值为另一个元素的ID
IDREFS 值为ID的列表
NMTOKEN 合法的XML名称
NMTOKENS 合法的XML名称列表
ENTITY 实体
ENTITYS 实体列表
NOTATION 符号的名称
xml: 值是一个预定义的XML值

属性值(attribute-value):

    一个值            给定的默认值
#REQUIRED 必填
#IMPLIED 非必填
#FIXED value 属性值是固定的

6、实体(用于定义引用普通文本或特殊字符的的快捷方式的变量,实体引用是对实体的引用)
    实体可在内部和外部声明

<!ENTITY entity-name "entity-value">    内部声明
    <!ENTITY entity-name SYSTEM "URL">        外部声明
    示例:
    DTD
    <!ENTITY writer "This is a writer">
    <!ENTITY copyright "I do not care what it is">
    XML实例:
    <author>&writer;&copyright;</author>

7、验证(javascript)
    示例:

    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.validateOnParse="true"; //值设为false就可以关闭验证
xmlDoc.load("note_dtd_error.xml"); document.write("<br />Error Code: ");
document.write(xmlDoc.parseError.errorCode);
document.write("<br />Error Reason: ");
document.write(xmlDoc.parseError.reason);
document.write("<br />Error Line: ");
document.write(xmlDoc.parseError.line);

Xpath,XQuery,DTD的更多相关文章

  1. XML中的XPATH和DTD

    大家好,乐字节小乐又来了,上次给大家说道的是XML解析,这次接着讲述XML文档中的语言:XPATH.DTD 一.先来说说XPATH 1.XPATH 概念 XPath 是一门在 XML 文档中查找信息的 ...

  2. XML & XPath & XQuery

    XML & XPath & XQuery full XPath demo https://www.w3.org/TR/xpath-full-text-30/ https://www.w ...

  3. XPath常用定位节点元素语句总结

    将一个XML或HTML文档转换成了DOM树结构后,如何才能定位到特定的节点?XPath实现了这样的功能,它通过DOM树中节点的路径和属性来导航,通过XPath路径表达式可以选择DOM树中的nodes( ...

  4. Xpath常用总结

    XPath常用定位节点元素语句总结 将一个XML或HTML文档转换成了DOM树结构后,如何才能定位到特定的节点?XPath实现了这样的功能,它通过DOM树中节点的路径和属性来导航,通过XPath路径表 ...

  5. C# XML技术总结之XDocument 和XmlDocument

    引言 虽然现在Json在我们的数据交换中越来越成熟,但XML格式的数据还有很重要的地位. C#中对XML的处理也不断优化,那么我们如何选择XML的这几款处理类 XmlReader,XDocument ...

  6. 【Java】Java XML 技术专题

    XML 基础教程 XML 和 Java 技术 Java XML文档模型 JAXP(Java API for XML Parsing) StAX(Streaming API for XML) XJ(XM ...

  7. Java数据库编程及Java XML解析技术

    1.JDBC概述 A.  什么是JDBC? Java DataBase Connectivity:是一种用于执行SQL语句的Java API,它由一组用Java语言编写的类和接口组成.通过这些类和接口 ...

  8. XML Schema命名空间解析

    URI Web中汇集了各种资源.资源可以是具有标识的任何事物, 如文档. 文件. 菜单项. 计算机. 服务等, 甚至可以包括人. 组织和概念[BernersLee 1998].在Web体系结构中, ...

  9. some things

    ////html[1]/body[1]/div[9]/div[1]/div[1]/div[1]/ul/li  截取规则 Articles/Article[1]:选取属于Articles子元素的第一个A ...

随机推荐

  1. git操作图

  2. js闭包及问题的解决

    闭包定义,作用 闭包就是能够读取其他函数内部变量的函数. 作用:一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中 缺点:闭包会保存函数中的变量在内存中,导致内存消耗大   闭包会 ...

  3. Jenkins使用教程之管理节点

    通常的情况下在我们的一个项目当中,项目会有多个分支系统,而我们不可能为每个分支系统都配置一个jenkins服务,这样既浪费资源,也增加构建部署的难度,为了解决这个问题jenkins给使用者提供了非常强 ...

  4. VC6完整项目代码升级到VS2010

    VC6完整项目代码升级到VS2010,有需要请联系我,专业C++开发,邮箱153786575@qq.com

  5. CCPC2018-A-Buy and Resell

    Problem Description The Power Cube is used as a stash of Exotic Power. There are n cities numbered 1 ...

  6. 图论&搜索:K短路-启发式搜索

    判断第k短路的权值是否小于T 直接把队友的代码拿过来了,一定很经典 #include <iostream> #include <queue> #include <cstr ...

  7. Linux 中的变量

    echo  $PATH var =a echo $var export  var1=11 echo $var 访问关系: whereis yum  file /usr/bin/yum vi  /usr ...

  8. linux命令df中df -h和df -i的区别

    df 命令: linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 1.命令格式: df [选项] [ ...

  9. 给APP增加RSA签名

    RSA签名,Google主要用于APP的来源控制与结算.所谓的结算,也是就是控制了APP只有使用现在机子上登录的Google账户从Google市场曾经下载过该APP的才能够使用,这样也就达到了app销 ...

  10. asp.net 遍历文件夹下全部子文件夹并绑定到gridview上

    遍历文件夹下所有子文件夹,并且遍历配置文件某一节点中所有key,value并且绑定到GridView上 Helper app_Helper = new Helper(); DataSet ds = n ...