[转]XML学习笔记--第2章 良构的XML文档

内容概要:
  • 如何用开始标签和结束标签定义一个元素
  • 如何用属性进一步描述标签
  • 如何把文档声明为xml类型
  • 如何给处理xml文档的应用程序传递指令
  • 哪些字符不允许出现在xml文档里,但又如何在文档中使用这些字符

2.1 解析xml文档

    使用xml解析器。

    常见的解析器有:

            MSXML:微软的xml解析器

            Apache Xerces

            Expat

2.2  标签、文本和元素(简略)

        <first>是开始标签

        </first>是结束标签

        <first> John</first>是元素

                其中,John是文本内容,又称PCDATA(Parsed Character Data)、文本节点。

     写法注意:标签内部的开头不可有空格,而结尾处可有空格

   2.2.1 定义元素的规则

  • 元素的开始标签必有结束标签与之对应(自封闭标签除外self-closing tag)
  • 标签不能重叠,必须正确嵌套
  • 一个xml文档中只能有一个根元素
  • 元素命名必须遵循xml命名规则
  • xml是区分大小写的
  • xml保留PCDATA里的空白符(white space)

         PCDATA中的空白符

      空白符:包括空格符、换行符和跳格符

        (1)HTML中:去年多余的空白符。因HTML是用来显示信息的,写HTML时为了易读而加入了空白符,但在显示时则去掉了多余的空白符(多余的空格、换行或跳格均看作是一个空格)

              要显示空格:用&nbsp;

              要显示换行:用<br>标签

              或使用<pre>标签 (pre标签的另个作用是让字符以“等宽”格式进行显示。

         (2)XML中:不删除PCDATA中多余的空白符。(注意:用IE浏览器查看xml代码时,空白符也被删除了,是因为IE先把xml用xlt技术转换为html再显示的)

           额外空白符:指出现在PCDATA以外地方的空白符,也就是出现在标记里的空白符,xml删除额外空白符。额外空白符是为了增加“可读性”。

          解析器如何 决定什么是空白符?

                  标签内只含有元素,则里边的空白符为额外空白符;标签内有PCDATA或PCDATA和元素共存时,空白符看作是数据的一部分。

...........

2.5 空元素(无PCDATA的元素)

    <middle></middle> 也可写作<middle/>

     使用情形:

  •    元素把全部数据都放到了属性里
  • 只需要元素名,如xhtml中的<br/>   

2.6  xml声明语句

       为什么要声明?

            对于windows,不声明也可以,只要存为.xml文件解析器即可识别;但对于其它OS,这样则不可,必须声明。结果,加上声明是个好习惯。(声明还可提供其它信息,如版本、编码、独立性)

          语句:<? xml version = "1.0" ?>,其中xml声明了当前文档是个xml类型,version说明了版本号。

                   最全:<? xml version="1.0" encoding="UTF-16" standalone="yes" ?>

                               version必有,encoding和standalone是可选的。encoding指定编码,standalone表明该文档是否依赖其它文件。

2.7 处理指令(向处理xml的应用程序传递指令)

     语法 :<?应用程序名 程序要执行的行为 ?>

                    里边的应用程序又叫“应用目标程序”---PITarget(Processing Instruction Target)

2.8  非法的PCDATA字符-----  <  和 &

        原因:xml中用‘<’表示开始一个新元素;用&表示一个实体。

        术语解释:PCDATA(parsed Character data),即被解析的字符数据,解析器会对此类数据进行解析,如上所说。

                           CDATA(Character Data),字符数据,解析器对此类数据不进行解析,< 和 & 维持原样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值