xml xpath dta笔记
xml:
有且只有一个根元素
默认utf-8 如果是中文且为不是utf-8的必须指定编码
声明的编码必须和文档的内容保持一致
well-formed XML :是否符合xml语法
valid xml:验证此xml是否符合dtd规则 dtd定义了哪些:
1.元素定义规则,只能有哪些标签
2.元素间关系的的定义,标签出现的顺序,位置
3.使用的实体或符号规则 < © //行内dtd写法
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root[
<!ELEMENT root EMPTY>
]>
<root></root>
//外部dtd写法 ,对于公共dtd如果浏览器能识别名称,则不会在去请求dtd文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root SYSTEM "test.dtd">
<root /> //test.dtd
<!ELEMENT root EMPTY> PCDATA:解析
CDATA:不解析,这样就可以不用在乎里面的特殊字符 元素声明使用<!ELEMENT 元素名称 (元素内容)>或<!ELEMENT 元素名称 类别>的语法<!ELEMENT root EMPTY> //EMPTY关键字表示元素是个空元素
<!ELEMENT root ANY> //ANY关键字表示元素中可以出现任何内容,也可以为空
//下面这个声明表示root中可以有文本,也可以是空
<!ELEMENT root (#PCDATA)> //()表示一个分组,其中是放的允许在元素出现的内容,#PCDATA表示文本
<!ELEMENT root (child)> //child是子元素的名称,这个声明表示root中必须且只能有一个child元素
<!ELEMENT root (child1,child2)> //以逗号分隔,表示子元素依次出现
<!ELEMENT root (child1|child2)> //竖线与"OR"的意思相近,表示root元素中只能出现child1或child2
<!ELEMENT root (child?)> //root中child子元素可以出现一次,也可以不出现
<!ELEMENT root (child+)> //root中child子元素至少出现一次
<!ELEMENT root (child*)> //root中child子元素可以出现任意次数或不出现
<!ELEMENT root (child,(a,b))> //()还可以嵌套,这里表示root元素中第一次子元素必须是child
//紧接着是a或b
<!ELEMENT root (child,(a,b)+)> //*,?,+这些量词可作用于分组,这里表示root元素中第一次子元素必须是child
//紧接着是a或b出现一次或多次 属性声明使用<!ATTLIST 元素名称 属性名称 属性类型 默认值>的语法.示例如下:
类型 描述
CDATA 值为字符数据 (character data)
(en1|en2|..) 此值是枚举列表中的一个值
ID 值为唯一的 id
IDREF 值为另外一个元素的 id
IDREFS 值为其他 id 的列表
NMTOKEN 值为合法的 XML 名称
NMTOKENS 值为合法的 XML 名称的列表
ENTITY 值是一个实体
ENTITIES 值是一个实体列表
NOTATION 此值是符号的名称
xml: 值是一个预定义的 XML 值 值 属性的默认值.该属性可以出现,也可以不出现,当没有明确指定该属性时,属性值使用默认值
#REQUIRED 属性值是必需的
#IMPLIED 属性不是必需的,可以出现,可以不出现
#FIXED value 属性值是固定的.属性可有可无,但有的时候,其值必须是value <!ATTLIST img src CDATA #REQUIRED> //img元素的src属性是必须的,值为字符串
<!ATTLIST script type CDATA "text/javascript"> //script元素的type属性默认值是text/javascript
<!ATTLIST div id ID #IMPLIED> //div元素的id属性是唯一的ID标识,可有可无
<!ATTLIST input type(text|radio|checkbox) "text"> //input元素的type属性是三个值中的一个,默认值是text
<!ATTLIST label for IDREF #IMPLIED> //label元素的for属性是页面中另一个元素的ID 实体的定义:
//一般实体定义
<!ENTITY abc "ABCabcABC"> //内部实体
<!ENTITY abc SYSTEM "abc.ent"> //外部私有实体
<!ENTITY test PUBLIC "-//AjaxLife//ENTITIES TEST 1 for XML//EN" "test.ent"> //外部公共实体
//实体引用
<abc>&abc;</abc> //参数实体 只在dtd文件中用
<!ENTITY % abc "root">
<!ELEMENT %abc; (child)>//这句将声明元素root,具有一个子元素child xml中引入样式表:<?xml-stylesheet type="text/css" href="http://test.cm/test.css"?> <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="http://test.cm/test.css"?>
<!DOCTYPE root [
<!ELEMENT root ANY>
<!ELEMENT node ANY>
<!ATTLIST node
name (a|b|c) 'a'
age CDATA '24'
id ID #IMPLIED
for IDREF 'f'
fors IDREFS 'a'
>
<!ENTITY sjk "songjiankang"> ]>
<root>
<node id="f"></node>
<node id="a"></node>
<node for="a"></node>
<node fors="a f">&sjk;</node>
</root> xpath:
body//p 后代元素
body/p 子元素 /root {选取root
root {选取root
child {空,因为child不是document的子元素
//child {选取两个child元素,//表示后代
//@attr {选取attr属性节点
/root/child//desc {返回child的后代元素desc /root/child[3] {选取root元素的第三个child子元素,注意,这和数组下标不一样,从1开始计数
//child[@attr] {选取所有具有属性attr的child元素
//child[@attr="val"]/desc {选取所有属性attr的值为val的child元素的子元素desc
//child[desc] {选取所有的有desc子元素的child
//child[position()>3] {position()是XPath中的一个函数,表示节点的位置
//child[@attr>12] {XPath表达式还可以进行数值比较,该表达式将选取attr属性值大于12的child元素
//child[last()] {last()函数返回节点列表最后的位置,该表达式将选取最后一个child元素 * ,和CSS中的选择符一样,这将匹配任何元素节点
@* ,匹配任何属性节点
node() ,匹配任何类型的节点 /root/* {选取根元素下面的所有子元素
/root/node() {选取根元素下面的所有节点,包括文本节点
//* {选取文档中所有元素
//child[@*] {选取所有具有属性的child元素
//@* {选取所有的属性节点
xsl:扩展样式表语言,主要用来对xml文档进行格式化
包括:1.xslt:将一个xml文件转换成另一种格式的xml文件或xhtml文件
2.xpath
3.xsl-fo 用来格式化xml
xml xpath dta笔记的更多相关文章
- Linq to XML 读取XML 备忘笔记
本文转载:http://www.cnblogs.com/infozero/archive/2010/07/13/1776383.html Linq to XML 读取XML 备忘笔记 最近一个项目中有 ...
- PHP操作XML文件学习笔记
原文:PHP操作XML文件学习笔记 XML文件属于标签语言,可以通过自定义标签存储数据,其主要作用也是作为存储数据. 对于XML的操作包括遍历,生成,修改,删除等其他类似的操作.PHP对于XML的操作 ...
- JavaEE XML XPath
JavaEE XML XPath @author ixenos XPath技术 1 引入 问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!!需要遍历DOM树的众多节点 ...
- XPath相关笔记
<?xml version="1.0" encoding="utf-8" ?> <employees> <employee o ...
- WP8 中使用HTML Agility Pack与友盟分享SDK遇到的 System.Xml.XPath加载问题
今晚在尝试使用友盟最新的社交分享SDK时,按照官方Demo,并未做多少多少改动,就是去除了对微信.脸书和推特的分享.然后运行之后就一直报错 : {System.IO.FileLoadException ...
- XML & XPath & XQuery
XML & XPath & XQuery full XPath demo https://www.w3.org/TR/xpath-full-text-30/ https://www.w ...
- xml基础学习笔记05
Xpath快速解析 如题一样,本篇主要说说Xpath快速查找XML文档 * Xpatn.Xquery,是专门用来查询xml的语言 * 查询xml非常快 Xpatn.Xquery,是专门用来 ...
- xml基础学习笔记04
今天继续xml学习,主要是:SimpleXML快速解析文档.xml与数组相互转换 .博客中只是简单的做一个学习记录.积累.更加详细的使用方法,可以查看php手册 1.SimpleXML快速解析文档 前 ...
- Xpath学习笔记
最近复习自己上一年的课本,想起来刚学那个时候想做一个写日记的软件. 想不如做,用控制台瞎写了一个,一做就成了,没什么bug,期间使用Xpath来读数据,所以就稍微学了一下. 学习过程就这样做一点笔记, ...
随机推荐
- bzoj 1598: [Usaco2008 Mar]牛跑步 -- 第k短路,A*
1598: [Usaco2008 Mar]牛跑步 Time Limit: 10 Sec Memory Limit: 162 MB Description BESSIE准备用从牛棚跑到池塘的方法来锻炼 ...
- JS取整,四舍五入,取绝对值等Math对象常用方法
function f1(type,num1) { switch(type) { case 'floor': return Math.floor(num1);//取整或下舍入 break; case ' ...
- 装饰者模式:轻松记住IO类的关系与API
开门见山 目录 概述与模型 1.概述 含义:动态地将责任附加到对象上.若要拓展功能,装饰者提供了比继承更有弹性的替代方案. 初衷:需要动态为某一个类拓展.通常我们会使用继承,但是继承的话,会产生很多子 ...
- Selenium自动化工具工作原理
http://blog.csdn.net/five3/article/details/6790925 原文作者信息如下,需要更多信息请去原作者博客查看: 作者:hyddd 出处:http://www. ...
- KVM虚拟机安装使用教程(Ubantu)
背景: 公司在某电信机房有50台ubantu的实体机,机器配置的ip是192.168.100.x的ip,内存和cpu都是高端配置.假如哪些端口需要对外映射,就通过机房的防火墙完成端口映射. 100.1 ...
- (转)Ext.Button点击事件的三种写法
转自:http://maidini.blog.163.com/blog/static/377627042008111061844345/ ExtJs的写法太灵活了,现在收集了关于Button点击事件的 ...
- SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
版权声明:本文为博主原创文章,博客地址:http://blog.csdn.net/a67474506?viewmode=contents 1.1. @RequestMapping映射请求 Spring ...
- 杭州有赞公司招聘 资深PHP开发工程师(平台架构方向)、技术专家
- Installshield 2010 中集成. Net framework4 与 vc++ 2010运行安装包
1.prq的地址,通过以下地址,下载相应的prq文件 VC 2010 redist X86: http://saturn.installshield.com/is/prerequisites/micr ...
- S3C2440上LCD驱动(FrameBuffer)实例开发讲解
一.开发环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2 二.背景知识 ...