XML

格式示范

<?xml version="1.0" standalone="yes" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="greeting.css"?>
<document>
  <customer>
    <name>
      <last_name>tan</lastname>
      <first_name>cheng</first_name>
    </name>
  </customer>
</document>

声明

用来指出文档采用了 XML, 可选, 存在时必须位于文档的第一行, 之前不允许有其他内容.

<?xml version="1.0" standalone="yes" encoding="UTF-8"?>
元素 描述
version xml 版本, 现在只能使用 1.0(必须)
standalone 是否单个文件,除非引用了任何外部实体(yes/no)(可选)
encoding 文档的语言编码(可选)

注释

不能出现在 xml 声明之前, 注释内不能包含 --, 不能在其他标记的内部.

<!-- 注释 -->

操作指令

这是一个将样式表关联到文档的指令

<?xml-stylesheet type="text/css" href="greeting.css"?>

标记

开始标记: 以 < 开始, > 结束.
结束标记: 以 </ 开始, > 结束.
空标记,不需结束标记: 以 < 开始, /> 结束.

标记名

以字母 下划线 冒号开头 其可才可使用 数字 短横线 句号, 区分大小写

根元素

文档中的第一个标记必须包含其他所有标记, 称为根元素

属性

是标记中附带的名称和值对, 用等号连接, 在一个标记内, 属性名必须唯一.
属性名的命名规范同标记, 属性值必须用 " 包围.

<CUSTOMER STATUS="Good credit">  
<tag xml:lang=""></tag> 通用属性, 用于指定文档内容和属性值所使用的语言

实体引用

用于代替一些特殊字符, 解除这些字符的特殊功能.

&amp; &
&lt; <
&gt; >
&apos; '
&quot; "

CDATA 段

此段中的字符数据(如实体引用)将不被解析, 保持原样

<![CDATA
   <CUSTOMER>
     <xxxx></xxxx>
   </CUSTOMER>
]]>

DTD

DTD 用来定义文档的结构和元素的语法规则.

<!DOCTYPE DOCUMENT [
  <!DOCTYPE rootname [DTD]>
  <!DOCTYPE rootname SYSTEM URL>
  <!DOCTYPE rootname SYSTEM URL [DTD]>
  <!DOCTYPE rootname PUBLIC identifier URL>
  <!DOCTYPE rootname PUBLIC identifier URL [DTD]>
]>

DTD 声明元素语法

<!ELEMENT document ANY> 元素 document 可以包含任何元素, (根元素)
<!ELEMENT document (customer)> 元素 document 的子元素列表,只可以包含这些元素
<!ELEMENT document (#PCDATA)> 元素 document 仅包含文本数据, 没有标记
<!ELEMENT document (customer)+> 元素 document 必须至少包含一个 customer 子元素
<!ELEMENT document (customer)+> 元素 document 必须至少包含一个 customer 子元素
<!ELEMENT document (customer)?> 元素 document 可以包含零或一个 customer 子元素
<!ELEMENT CUSTOMER(NAME,DATE,ORDERS)> 元素 CUSTOMER 中应顺序包含 NAME, DATE, ORDERS 元素
<!ELEMENT ITEM(PRODUCE,(PRICE|SAMPLE)) 元素 ITEM 中应包含 PRODUCE 及 PRICE SAMPLE 其中之一

外部私有 DTD 引用

xml <?xml version="1.0" standalone="no"?>
<!DOCTYPE DOCUMENT SYSTEM "http://xxx/order.dtd">
dtd <!ELEMENT DOCUMENT (CUSTOMER)*>

继续

  1. DocumentBuilderFactory

  2. DocumentBuilder

  3. document

  4. node

  5. parseError

XML 示例

<?xml version="1.0" encoding="GB2312"?>
<myfile>
   <title>XML轻松学习手册</title>
   <author>ajie</author>
   <email>ajie@aolhoo.com</email>
   <date>20010115</date>
</myfile>
<html>
<head>
<script language="JavaScript" for="window" event="onload">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("myfile.xml");
nodes = xmlDoc.documentElement.childNodes;
title.innerText = nodes.item(0).text;
author.innerText = nodes.item(1).text;
email.innerText = nodes.item(2).text;
date.innerText = nodes.item(3).text;
</script>
<title>在HTML中调用XML数据</title>
</head>
<body bgcolor="#FFFFFF">
<b>标题: </b>
<span id="title"> </span><br>
<b>作者: </b>
<span id="author"></span><br>
<b>信箱: </b>
<span id="email"></span><br>
<b>日期:</b>
<span id="date"></span><br>
</body>
</html>