• XML
  1. 信息传输工具
  2. 标签未被预定义
  3. 具有自我描述性
  4. W3C的推荐标准
  • XML  HTML的差异
  1. XML:传输 存储数据
  2. HTML:显示数据

  • 树结构

<root>

<child>

<subchild>

<subchild/>

<child/>

<root/>

  1. <bookstore>
  2. <book category="a"> 属性
  3. <title lang="b"> </title>
  4. <author> </author>
  5. <year> </year>
  6. <price> </price>
  7. </book>
  8. </bookstore>

  • 语法

1.XML必须有根元素

2.声明放在第一行,例:

  1. <?xml version="1.0" encoding="utf-8"?>

3.XML必须有关闭标签

4.标签对大小写敏感

5.属性值加引号

6.字符会引起解析错误,实体引用

&lt; < less than
&gt; > greater than    但是合法,可使用
&amp; & ampersand
&apos; ' apostrophe
&quot; " quotation mark

7.注释

  1. <!-- This is a comment -->

8.XML 以 LF 存储换行


  • XML元素

1.包括:其他元素,文本,属性

2.XML 元素必须遵循以下命名规则:

  • 名称可以包含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字母 xml(或者 XML、Xml 等等)开始
  • 名称不能包含空格
  • 可使用任何名称,没有保留的字词。

3.使名称具有描述性。使用下划线的名称也很不错:<first_name>、<last_name>。

名称应简短和简单,比如:<book_title>,而不是:<the_title_of_the_book>。

避免 "-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为您想要从 first 里边减去 name。

避免 "." 字符。如果您按照这样的方式进行命名:"first.name",一些软件会认为 "name" 是对象 "first" 的属性。

避免 ":" 字符。冒号会被转换为命名空间来使用(稍后介绍)。


  • XML属性

<file type='gif'>computer.gif</file>

属性必须加引号

包括date的扩展实例,避免使用属性,多使用扩展

  1. <note>
  2. <date>
  3. <day>10</day>
  4. <month>1</month>
  5. </date>
  6. <to>A</to>
  7. <from>B</from>
  8. <heading>head</heading>
  9. <body>23333333333333</body>
  10. </note>

因使用属性而引起的一些问题:

  • 属性不能包含多个值(元素可以)
  • 属性不能包含树结构(元素可以)
  • 属性不容易扩展(为未来的变化)

属性难以阅读和维护。请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。

向元素分配id

id 属性仅仅是一个标识符,用于标识不同的便签。它并不是便签数据的组成部分

  1. <messages>
  2. <note id="501">
  3. <to>Tove</to>
  4. <from>Jani</from>
  5. <heading>Reminder</heading>
  6. <body>Don't forget me this weekend!</body>
  7. </note>
  8. <note id="502">
  9. <to>Jani</to>
  10. <from>Tove</from>
  11. <heading>Re: Reminder</heading>
  12. <body>I will not</body>
  13. </note>
  14. </messages>
  • 元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

  • XML验证

通过DTD验证XML是否“合法”,形式良好,有正确的语法规则,即:

  • XML 文档必须有一个根元素
  • XML元素都必须有一个关闭标签
  • XML 标签对大小写敏感
  • XML 元素必须被正确的嵌套
  • XML 属性值必须加引号
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <!DOCTYPE note SYSTEM "Note.dtd">
  3. <note>
  4. <to>Tove</to>
  5. <from>Jani</from>
  6. <heading>Reminder</heading>
  7. <body>Don't forget me this weekend!</body>
  8. </note>

DOCTYPE 声明是对外部 DTD 文件的引用

DTD 的目的是定义 XML 文档的结构。

  1. <!DOCTYPE note
  2. [
  3. <!ELEMENT note (to,from,heading,body)>
  4. <!ELEMENT to (#PCDATA)>
  5. <!ELEMENT from (#PCDATA)>
  6. <!ELEMENT heading (#PCDATA)>
  7. <!ELEMENT body (#PCDATA)>
  8. ]>

W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema

  1. <xs:element name="note">
  2.  
  3. <xs:complexType>
  4. <xs:sequence>
  5. <xs:element name="to" type="xs:string"/>
  6. <xs:element name="from" type="xs:string"/>
  7. <xs:element name="heading" type="xs:string"/>
  8. <xs:element name="body" type="xs:string"/>
  9. </xs:sequence>
  10. </xs:complexType>
  11.  
  12. </xs:element>
  • XML的显示

XML文档不会携带如何显示数据的信息,多数浏览器仅会显示为源代码

  • 使用CSS显示XML

CSS文件

  1. CATALOG
  2. {
  3. background-color: #ffffff;
  4. width: 100%;
  5. }
  6. CD
  7. {
  8. display: block;
  9. margin-bottom: 30pt;
  10. margin-left: 0;
  11. }
  12. TITLE
  13. {
  14. color: #FF0000;
  15. font-size: 20pt;
  16. }
  17. ARTIST
  18. {
  19. color: #0000FF;
  20. font-size: 20pt;
  21. }
  22. COUNTRY,PRICE,YEAR,COMPANY
  23. {
  24. display: block;
  25. color: #000000;
  26. margin-left: 20pt;
  27. }

第二行把 XML 文件链接到 CSS 文件, 该链接为显示样式:

http://www.runoob.com/try/xml/cd_catalog_with_css.xml

  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <?xml-stylesheet type="text/css" href="cd_catalog.css"?>
  3. <CATALOG>
  4. <CD>
  5. <TITLE>Empire Burlesque</TITLE>
  6. <ARTIST>Bob Dylan</ARTIST>
  7. <COUNTRY>USA</COUNTRY>
  8. <COMPANY>Columbia</COMPANY>
  9. <PRICE>10.90</PRICE>
  10. <YEAR>1985</YEAR>
  11. </CD>
  12. <CD>
  13. <TITLE>Hide your heart</TITLE>
  14. <ARTIST>Bonnie Tyler</ARTIST>
  15. <COUNTRY>UK</COUNTRY>
  16. <COMPANY>CBS Records</COMPANY>
  17. <PRICE>9.90</PRICE>
  18. <YEAR>1988</YEAR>
  19. </CD>
  20. .
  21. .
  22. .
  23. </CATALOG>
  • 使用XSLT(eXtensible Stylesheet Language Transformations)显示XML

链接为实例:

http://www.runoob.com/try/tryxslt.php?xmlfile=simple&xsltfile=simple

XSLT 是在浏览器显示 XML 文件之前,先把它转换为 HTML

可以在服务器上进行 XSLT 转换

  1.  

XML基础学习的更多相关文章

  1. xml基础学习笔记05

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

  2. xml基础学习笔记03

    继续上篇xml学习笔记,坚持.坚持.再坚持啊.... 本篇主要记录: 35.XML节点的删除与修改 36集.用XML制作RSS订阅源 <?php /* 笔记: 35.XML节点的删除与修改 使用 ...

  3. 转载---SQL Server XML基础学习之<5>--XQuery(query)

    本章写一些SQL Server XML的一些XQuery基础语法,主要讲的query查询语法 T-SQL 支持用于查询 XML 数据类型的 XQuery 语言的子集. XQuery 基于现有的 XPa ...

  4. XML 基础学习

    在w3school看到了XML的教程,想到以前工作学习中也接触到了XML,但只是简单搜索了解了下,没有认真去学习XML的基础,所以现在认真看下其基础部分,并写篇博客作为笔记记录下. XML 简介 XM ...

  5. XML基础学习01

    XML学习 1:XML:可扩展的标识语言,是一种描述结构数据的格式,简化了网络中数据交换和表示,使得代码,数据和表示分离,并作为数据交换的标准格式,被称为智能数据文档. 2:当我们不使用数据库来存储数 ...

  6. xml基础学习笔记04

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

  7. xml基础学习笔记01

    注意:刚刚看了网上对于XML中的标签,节点和元素?到底应该怎么表述?起初我也有这个疑惑,现在我的想法是:下面出现node的应称作节点,节点对象.element应称作元素,毕竟这更符合英文的本意.至于标 ...

  8. xml 基础学习备忘

    <?xml version="1.0" encoding="UTF-8"? standalone="yes"> 这里的encod ...

  9. XML基础学习02<linq to xml>

    Linq to XML的理解 1:这是一种比较好的操作Xml的工具. àXDocument 文档 àXElement 元素 àXAttribute 属性 àXText 文本 2:这里还是和我们之前创建 ...

  10. SQL Server XML基础学习之<7>--XML modify() 方法对 XML 数据中插入、更新或删除

    /*------------------------------------------------------------------------------+ #| = : = : = : = : ...

随机推荐

  1. python 全栈开发笔记 4

    反射 1.通过字符串的形式导入模块 2.通过字符串的形式,去模块中寻找指定函数并执行 ''' def f1(): return 'F1' def f2(): return 'F2' ''' #假设上面 ...

  2. Python之OS内置模块

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curd ...

  3. C++ Coroutine简明教程

    在C++里,一个函数如果其函数体实现中包含co_await.co_yield.co_return中任何一个关键字,那么这个函数就是一个coroutine.其中: co_await:挂起当前的corou ...

  4. Vmware Vsan 部署中如何将非SSD 硬盘标识为SSD

    通过SSH 登录ESXi主机 # esxcli storage nmp device list #查询ESXI 发现的存储设备 #   esxcli storage nmp satp rule add ...

  5. 吴恩达机器学习笔记5-Octave基本操作

    1.逻辑运算 1==2 %false :注释用%,这句话意思是判断1是否等于2,false,输出0 1~=2 %true  1不等于2 为true,输出为1 1&&0 %and 1|| ...

  6. jmeter 常用组件详解

    1.测试计划(test plan) 描述一个性能测试,包含本次测试所有相关功能 2.threads(users)线程 Setup thread group: 一种特殊类型的线程,可用于执行预测试操作. ...

  7. EF简单的CURD操作

    /// <summary> /// EF添加数据 /// </summary> /// <param name="sender"></pa ...

  8. String Method的字符串变换的一个例子

    <!DOCTYPE html> <html lang="en"><head> <meta charset="UTF-8" ...

  9. socket网络编程-----I/O复用之select函数

    #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/soc ...

  10. Jenkins使用QQ邮箱构建邮件提醒服务

    前置条件: 已安装好Jenkins服务端 步骤: 访问Jenkins服务端(ip+端口),登录Jenkins 点击系统管理 选择管理插件 选择可选插件 搜索Mailer Plugin 点击直接安装 点 ...