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来读数据,所以就稍微学了一下. 学习过程就这样做一点笔记, ...
随机推荐
- UESTC 2015dp专题 A 男神的礼物 区间dp
男神的礼物 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/65 Descri ...
- jmeter用beanshell调用自己写的jar进行MD5加密
1.先在eclipse里面写好MD5的加密文件,用eclipse执行一遍,确保文件不会报错 Str2MD5.java 内容如下: package hehe.md5; import java.secur ...
- C语言 关键字
auto 局部变量(自动储存)break无条件退出程序最内层循环case switch语句中选择项char单字节整型数据const定义不可更改的常量值continue中断本次循环,并转向下一次循环de ...
- hadoop招聘需求每天都在添加,短短半个月时间,需求量差点儿翻了一番,这是大数据要爆发的节奏么?
近期常常关注企业hadoop招聘需求的动态变化,多说无益,直接上几张百度的截图: 4月20日: 4月22日: 4月27日: 5月8日:
- TRF7970A IC Communication Interface
General Introduction The communication interface to the reader can be configured in two ways: with a ...
- 关于npm run build 卡住不动的坑。。。
起因:最近开发个项目使用的vue,有些功能需要生产版本放服务器上测试,这就出问题了..卡住了,不动了,还不报错 这是在vscode的终端里面,试了git hash,试了cmd , 试了powershe ...
- vue项目条形码和二维码生成工具试用
项目开发需要,优惠券分不同类型,简单的使用id生成条形码供店铺使用,麻烦点的需要多个字段的就需要使用二维码来展示了,对应的效果如下 条形码(一维码)使用工具code128 需引入code128.js ...
- sweet home 3d 免费的家居设计软件
Sweet home 3d是一个室内设计软件,可以帮助你快速的画出你家的平面图,家具的摆放位置,并且支持3D方式查看. 下载地址: http://sourceforge.net/projects/sw ...
- 一致性hash在分布式系统中的应用
场景 如果要设计一套KV存储的系统,用户PUT一个key和value,存储到系统中,并且提供用户根据key来GET对应的value.要求随着用户规模变大,系统是可以水平扩展的,主要要解决以下几个问题. ...
- Unity的shader学习1
先来看一段我们项目常见的Shader代码,这个是Vertex&Fragment shader,目前已经不常用了,不过还是适合我们理解一些基础知识和理解一些比较老的shader 代码.下次我们再 ...