一、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. nova-api源码分析(APP中用到的开源库)

    源码版本:H版 1.paste.deploy 参考文章: http://pythonpaste.org/deploy/ http://blog.csdn.net/xiangmin2587/articl ...

  2. Vue.js随笔三(npm init webpack my-project指令安装失败解决方案)

    如果没有安装淘宝给的镜像就先安装一下,指令如下,对!就是如此简单: npm install -g cnpm -registry=https://registry.npm.taobao.org 首先输入 ...

  3. Web 开发者不可不知的15条编码原则

    HTML 已经走过了近20的发展历程.从HTML4到XHTML,再到最近十分火热的HTML5,它几乎见证了整个互联网的发展.但是,即便到现在,有很多基础的概念和原则依然需要开发者高度注意.下面,向大家 ...

  4. Eng1—English daily notes

    English daily notes 2015年 4月 Phrases 1. As a side note #作为附注,顺便说句题外话,和by the way意思相近,例句: @1:As a sid ...

  5. 关于linux下crontab mysql备份出来的数据为0字节的问题

    问题出在计划任务所执行的脚本上! 脚本中的调用的指令应该都写全路径~ 实例: # crontab -c 编辑下的内容 30 18 * * * /root/backup.sh 意思为:每天18:30执行 ...

  6. CodeForces - 996B

    Allen wants to enter a fan zone that occupies a round square and has nn entrances. There already is ...

  7. 关于Re模块的一些基础知识(另附一段批量抓代理ip的代码)

    1.常用匹配规则 . 表示任意字符[0-9] 用来匹配一个指定的字符类别[^5]表示除了5之外的其他字符,^不在字符串的开头,则表示它本身.* 对于前一个字符重复0到无穷次+ 对于前一个字符重复1到无 ...

  8. 127.0.0.1、localhost、0.0.0.0的区别

    在开发web应用的测试环境中,如果希望同一个局域网的同事通过内网IP访问自己的应用,则需要把web服务监听的ip地址改为0.0.0.0.为什么用127.0.0.1不行,而用0.0.0.0就可以呢? f ...

  9. php常用表单验证类用法实例

    <?php /** * 页面作用:常用表单验证类 * 作 者:欣然随风 * QQ:276624915 */ class class_post { //验证是否为指定长度的字母/数字组合 func ...

  10. sqlmap tamper编写

    #!/usr/bin/env python """ Copyright (c) 2006-2017 sqlmap developers (http://sqlmap.or ...