xml:
有且只有一个根元素
默认utf-8 如果是中文且为不是utf-8的必须指定编码
声明的编码必须和文档的内容保持一致
well-formed XML :是否符合xml语法
valid xml:验证此xml是否符合dtd规则 dtd定义了哪些:
1.元素定义规则,只能有哪些标签
2.元素间关系的的定义,标签出现的顺序,位置
3.使用的实体或符号规则 &lt &copy //行内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笔记的更多相关文章

  1. Linq to XML 读取XML 备忘笔记

    本文转载:http://www.cnblogs.com/infozero/archive/2010/07/13/1776383.html Linq to XML 读取XML 备忘笔记 最近一个项目中有 ...

  2. PHP操作XML文件学习笔记

    原文:PHP操作XML文件学习笔记 XML文件属于标签语言,可以通过自定义标签存储数据,其主要作用也是作为存储数据. 对于XML的操作包括遍历,生成,修改,删除等其他类似的操作.PHP对于XML的操作 ...

  3. JavaEE XML XPath

    JavaEE XML XPath @author ixenos XPath技术 1 引入 问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!!需要遍历DOM树的众多节点 ...

  4. XPath相关笔记

    <?xml version="1.0" encoding="utf-8" ?> <employees>   <employee o ...

  5. WP8 中使用HTML Agility Pack与友盟分享SDK遇到的 System.Xml.XPath加载问题

    今晚在尝试使用友盟最新的社交分享SDK时,按照官方Demo,并未做多少多少改动,就是去除了对微信.脸书和推特的分享.然后运行之后就一直报错 : {System.IO.FileLoadException ...

  6. XML & XPath & XQuery

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

  7. xml基础学习笔记05

    Xpath快速解析 如题一样,本篇主要说说Xpath快速查找XML文档   * Xpatn.Xquery,是专门用来查询xml的语言   * 查询xml非常快   Xpatn.Xquery,是专门用来 ...

  8. xml基础学习笔记04

    今天继续xml学习,主要是:SimpleXML快速解析文档.xml与数组相互转换 .博客中只是简单的做一个学习记录.积累.更加详细的使用方法,可以查看php手册 1.SimpleXML快速解析文档 前 ...

  9. Xpath学习笔记

    最近复习自己上一年的课本,想起来刚学那个时候想做一个写日记的软件. 想不如做,用控制台瞎写了一个,一做就成了,没什么bug,期间使用Xpath来读数据,所以就稍微学了一下. 学习过程就这样做一点笔记, ...

随机推荐

  1. 稀疏编码直方图----一种超越HOG的轮廓特征

    该论文是一篇来自CMU 的CVPR2013文章,提出了一种基于稀疏编码的轮廓特征,简称HSC(Histogram of Sparse Code),并在目标检测中全面超越了HOG(Histogram o ...

  2. HDU 4705 Y (2013多校10,1010题,简单树形DP)

    Y Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submiss ...

  3. wpf 分别用 xaml 和后台代码实现 色彩渐变

    xaml 方法: <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.micros ...

  4. c++多行字符串,可以这么写

    c++多行字符串,可以这么写:CString s;s.Format("CREATE TABLE %s(\[ID] [int] IDENTITY(1,1) NOT NULL,\[Vendor] ...

  5. Ext各种对话框

    <HTML> <HEAD> <TITLE>选择确认对话框</TITLE> <link rel="stylesheet" typ ...

  6. Spring MVC一事务控制问题

    在近期一个项目中用了Spring MVC作为控制层框架,但却出现了一个让人非常费解的问题:事务控制. Spring MVC的配置文件名称为:springMVC-servlet.xml,内容例如以下: ...

  7. SharePoint 入门书籍推荐

    最近,总有人说刚入门SharePoint,没有好的资料或者电子书,资料推荐大家多看看博客园和CSDN的博客.对于看博客,我一般是两个思路,要么找一个人的从头到尾看一遍,觉得有意义的,就把地址加收藏:或 ...

  8. HTTP 错误 404.2 - Not Found 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。

    IIS的根节点->右侧"ISAPI和CGI限制"->把禁止的DotNet版本项设置为允许,即可.

  9. Element 'beans' cannot have character [children]

    在编写spring的applicationContext.xml文件时,出现了: Element 'beans' cannot have character [children], because t ...

  10. Delphi DBGrid图显用法

    procedure TForm10.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: ...