oh-my-docs

Summary for developers


Project maintained by italkso Hosted on GitHub Pages — Theme by mattgraham

1.XML 基础

1.1 XML 的用途

XML (eXtensible Markup Language)是W3C 的推荐标准,用于传输和存储数据,可存储、可搜索和可共享。使用 XML 你需要自行定义标签,XML具有自我描述性,可以在不中断应用程序的情况下进行扩展,且独立于软件和硬件。

XML 的用途如下:

1.2 XML 语法及验证

XML 树结构

XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。

XML 语法规则

<!-- XML declaration -->
<?xml version="1.0" encoding="UTF-8"?>

<bookstore>
    <book category="COOKING">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
    </book>
    <book category="CHILDREN">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
    <book category="WEB">
        <title lang="en">Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
    </book>
</bookstore>

XML 验证

1.3 XML 元素

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。一个元素可以包含:文本、属性或其他元素。

XML 元素的名称应具有自我描述性,简单,避免 - . : 等字符。XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素,可以使用数据库的命名规则来命名 XML 文档中的元素。

XML的元素命名规则具体如下:

1.4 XML 属性

属性(Attribute)提供有关元素的额外信息。属性值必须被引号包围,不过单引号和双引号均可使用。

属性不能包含多个值,不能包含树结构(元素可以),不易扩展。因此使用元素来描述数据,而仅仅使用属性来提供与数据无关的信息。

最佳实践:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

1.5 使用 XSLT 显示 XML

在没有任何有关如何显示数据的信息的情况下,大多数的浏览器都会仅仅把 XML 文档显示为源代码。

我们可以使用 CSS 或者 XSLT (W3C 推荐)来格式化 XML 文档。

XSLT(eXtensible Stylesheet Language Transformations )是首选的 XML 样式表语言,它会在浏览器显示 XML 文件之前,先把它转换为 HTML 格式。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html> 
<body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th style="text-align:left">Title</th>
      <th style="text-align:left">Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
    <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="artist"/></td>
    </tr>
    </xsl:for-each>
  </table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

XML JavaScripts

//	Create a XMLHttpRequest Object
xmlhttp = new XMLHttpRequest();

//	Parse XML Document
if (window.XMLHttpRequest) {
	xmlhttp = new XMLHttpRequest();
}

xmlhttp.open("GET","books.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 

//	Parse XML String
txt="<bookstore><book>";
txt=txt+"<title>Everyday Italian</title>";
txt=txt+"<author>Giada De Laurentiis</author>";
txt=txt+"<year>2005</year>";
txt=txt+"</book></bookstore>";

if (window.DOMParser) {
	parser = new DOMParser();
	xmlDoc = parser.parseFromString(txt,"text/xml");
}

3. XML 进阶

参考资料:XML教程