XML学习笔记之入门

标记语言的鼻祖是SGMLStandard Generalized Markup Language. 可扩展标记语言XMLeXtensible Markup Language)和我们所熟悉的 HTMLHypertext Markup Language)都是SGML的一个子集。

1、  XML声明

<? Xml version=” 1.0” standalone=”yes” endcoding=”UTF -8” ?>

这是XML处理指令的例子。处理指令以“<?”开始,而以”?>”结束。在“”后的第一个单词是处理指令名,这里是xml,代表xml声明。

Xml声明有versionstandaloneencoding三个特性。特性是由等号分开的名称-数值对,位于等号左边的是特性名,而其值位于等号的右边,并用双引号括起来。

每一个xml文档都以一个xml声明开始,用以指明所用的xml的版本。

上例中,version特性表明这个文档符合XML 1.0规范。

Standalone特性告诉我们文档是否在一个文件里,还是需要从外部导入文件。Yes代表所有的文档都在一个文件里完成。

Encoding选择UTF-8代表文档字符编码为UTF-8

2、  定义一个根元素

每个合格的XML文档必须有一个根元素。这是一个完全包括文档中其他所有元素的元素。

3、  XML元素的一些规则

1)  元素的基本结构由开始标记、数据内容、结束标记组成。

2)  大小写不同的标记含义不同

3)  结束标记必须带反斜杠

4)  当只有一个标记时可以写为<HR/>

5)  名字中可以包含字母、数字以及其他字母

6)  名字不能以数字或下划线开头

7)  名字不能以字母xml(    XMLXml。。)开头

8)  名字中不能包含空格和冒号

XML文档的常用元素:

1、注释

<!— 这是注释 -->

2PI(处理指令)

PI(Processing Instruction)

<?xml:stylesheet href=”style.css” type=”text/css”?>

这种写法表示这个xml文档用style.css样式来显示,样式表的类型是css.

3、  PCDATA

尽管文档中可以出现任何元素,但出现的元素必须声明。

<!ELEMENT YEAR(#PCDATA)>

该声明说明YEAR只能包含可析的字符数据,不能包含子元素。

例:<YEAR>98</YEAR>

    <YEAR> 1998 C .E</YEAR>

是合法的。

<YEAR>

<MONTH>12</MONTH>

</YEAR>

是非法的。

4、  CDATA

CDATA段中所有文本都是纯字符数据。

<SAMPLE>

    <![CDATA[<DOCUMENT>

                <NAME>TOM CRUISE</NAME>

                <EMAIL>tom@usa.com</EMAIL>

             </DOCUMENT>]]>

</SAMPLE>

它以“<![CDATA[“开始并以“]]>”结束,需要注意的是,唯一不许出现在CDATA段中的文本是CDATA的结束界定符”]]>”

5、  实体(Entities

XML为我们预定义的五个实体:

实体      符号

&lt;       <

&gt;       >

&amp;      &

&quot;    

&apos;   

经典的实体例子就是图像。

    <!ENTITY LOGO SYSTEM “logo.gif”>

    <IMAGE SOURCE=”LOGO”/>

前一句是实体声明,后一句是引用实体。

如果在XML中直接使用实体,一般语法为:

    &实体名;

如果实体声明不在XML文件中,而是在文件外部,用“%”来代替“&:

    %实体名;

6、  DOCTYPE

“<!DOCTYPE[]>”紧随XML声明之后,它包括着所有的实体声明。基本格式如下:

<?xml version=” 1.0” ?>

<!DOCTYPE myDoc [

…declare the entities here …

        ]>

<myDoc>

…body of the document…

</mydoc>

 

例:

<?xml version=” 1.0” ?>

<!DOCTYPE CUSTOMERS [

<!ENTITY firstFloor “ 15 Downing St Floor 1” >

<!ENTITY secondFloor “ 15 Downing St Floor 2” >

]>

<!—CUSTOMERS is the root node -->

<CUSTOMERS>

      <CUSTOMER>

          <NAME>TOM CRUISE</NAME>

          <ADDRESS>&firstFloor</ADDRESS>

          <PHONE>1234567</PHONE>

      </CUSTOMER>

<CUSTOMER>

          <NAME>TOM CRUISE</NAME>

          <ADDRESS>&secondFloor</ADDRESS>

          <PHONE>1234567</PHONE>

      </CUSTOMER>

</CUSTOMERS>

7、属性

属性值必须加引号。

给自己留一个问题:

Attribute=value 来存储数据 与   用子节点的innerText来存储  有什么区别?

如:<?xml version=” 1.0” ?>

<CUSTOMERS>

      <CUSTOMER>

          <NAME>TOM CRUISE</NAME>

          <PHONE>1234567</PHONE>

      </CUSTOMER>

</CUSTOMERS>

 

Attribute来改写上面的例子。

<?xml version=” 1.0” ?>

<CUSTOMERS>

      <CUSTOMER NAME=”TOM CRUISE” HPONE=” 1234567” />

</CUSTOMERS>

也希望有人来解答我这个问题,在此恭候。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值