`

XML学习笔记---初步探索XML

阅读更多

知道XML已经很久了,最常见到它的地方莫过于web编程时见过的web.xml和struts中的struts-config.xml。但却一直不了解它到底是做什么用地。有一点可以肯定,它的作用远远不止于此。

这两天比较闲,在网上看了一些关于XML的学习资料,第一次有这样一个东西深深的吸引了我。

研究它是因为想研究RSS,而RSS是目前最成功的XML应用。所以,才有的冲动去了解XML。

记录笔记如下:

背景

我对背景这个东西就跟读新闻一样,一廖而过。但了解一种技术或者一种语言的背景,有助于我们理解它的应用。先了解几个概念:
SGML(Standard Generalized Markup Language),标准通用标记语言。
XML(eXtensible Markup Language),扩展标记语言。
HTML(Hyper Text Mark-up Language ),超文本标记语言。

早在Web未发明之前,SGML就已经存在了。但是SGML这种语言相当的庞大,学习起来很复杂(听说的),我想,SGML中也应该是可以任意的定义各种标记,然后也有很多的DTD,对标记做不同的定义。那个年代,对于这种灵活性可能一般人都很难掌握吧(猜的哈哈),于是就诞生了HTML。

我想HTML无非就是用SGML定义好每一种标记,包括DTD也是定义好的(HTML中好像没有DTD,我想是已经定义好一种规范可以被浏览器识别了吧),通通不可以改变。这样,由于HTML都是由一些固定的标记组成的,数量有限,所以学习起来非常的简单,使用起来也非常方便。

但是由于WEB的应用越来越广泛,HTML的缺点也逐渐的显现出来。它固定的标签导致它在解决一些复杂问题的时候,很困难。介于这个弱点,于是就产生了XML,可扩展标记语言。和SGML相比,XML就是一个精简的SGML。可以想象,XML不局限于固定的标签,完全可以由自己来设置标签,再配合DTD文件对标签进行定义规范。XML的功能要比HTML强大得多。这样,随着问题空间的变大,解决问题的空间也变大了嘿。

XML与HTML比较

HTML只是WEB通过浏览器显示数据的通用方法,而XML提供了一个直接处理WEB数据的通用方法。HTML着重描述WEB数据的显示格式,(想想那些标签也基本上都是用于显示格式的),而XML着重描述的是WEB页面的内容。

好像不是很好理解,我是这样想的,HTML的标签目的在于如何把数据用不同的格式显示出来。比如同样的一个字符串,我可以把它显示成一个Label,一个Text,或者一个Link。而XML,目的在于把这个字符串的内容完整的显示出来。

当然,它也能做到把这个字符串显示成各种格式。只需要结合一个XSL来描述。由XSL来定义XML中数据的显示格式。这样,使数据和表现形式完全的分离,这也许就是XML的魅力吧。

XML的应用

这是我最在意的地方。记录下有待研究。
参考网上的资料,有人这样统计过:
1. 应用于客户需要与不同的数据源进行交互时。
2. 应用于将大量运算负荷分布在客户端,即客户可根据自己的需求选择和制作不同的应用程序以处理数据,而服务器只须发出同一个XML文件。
3. 应用于将同一数据以不同的面貌展现给不同的用户。
4. 应用于网络代理对所取得的信息进行编辑、增减以适应个人用户的需要。

另一个网络资源的理解,同样是这四个方面:
1. 当网络客户必须在不同的数据库之间传递信息时;
2. 当需要把大部分从网络服务器下载的数据在用户端处理的时;(好像正是我需要的那个)
3. 当相同的数据对于不同的用户需要有不同的界面时;
4. 当网络情报供应商要把发现的信息精心裁剪并发送给不同的个人用户时。


简单的XML文件
<?xml version="1.0" encoding="gb2312"?>
<blog>
<name>java study</name>
<author>Jiu Cheng</author>
<url>http://www.blogjava.net/realsmy</url>
</blog>
version="1.0",说明这个文件遵循现在的xml1.0规范。

XML文档和HTML文档相比,是结构良好的文档。比如:
1. 标签必须成对。
2. 一份文档必须包含一个根元素。
3. 所有的开始标签和结束标签必须匹配。
4. 空标签必须以“/>”结束。
5. 标签必须嵌套正确。
6. 元素名称大小写敏感。
7. 所有的属性值必须位于单引号或双引号中。
8. 在同一个开始标签或空标签澡属性不允许出现超过一次。
以上这些是XML文档必须遵循的,但是HTML浏览器却可以接收结构不良好的HTML文档。

在HTML浏览器中格式化XML数据

我想我说格式化大概不是很标准,暂时这样理解。就我现在知道的,有两种方法。一种是在HTML文件中调用XML中的数据利用HTML的显示格式来显示,一种是利用XSL文件来设置XML数据的样式。
1. 在HTML文件中调用XML数据
    也有两种方法,一种是用脚本(script)调用。
<HTML>
<HEAD>
   
<TITLE>test.html</TITLE>
   
<script language="javaScript" for="window" event="onload">
    
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.load(
"blog.xml");
    nodes
=xmlDoc.documentElement.childNodes;
    name.innerText 
= nodes.item(0).text;
    author.innerText 
= nodes.item(1).text;
    url.innerText 
= nodes.item(2).text;
   
</script>
</HEAD>
<BODY>
   
<b>BLOG NAME:</b><span id="name"></span><br>
   
<b>AUTHOR:</b><span id="author"></span><br>
   
<b>BLOG URL:</b><span id="url"></span><br>
</BODY>
</HTML>
    一种是引入XML文件。
<HTML>
<HEAD>
   
<TITLE>test.html</TITLE>
</HEAD>
<BODY>
    
<xml id="blog" src="blog.xml"></xml>
    
<table border="0" datasrc="#blog">
      
<tr>
        
<td>BLOG NAME:</td>
        
<td><span datafld="name"></span></td>
      
</tr>
      
<tr>
        
<td>AUTHOR:</td>
        
<td><span datafld="author"></span></td>
      
</tr>      
      
<tr>
        
<td>BLOG URL:</td>
        
<td><span datafld="url"></span></td>
      
</tr>
    
</table>
</BODY>
</HTML>

    blog.xml文件

<?xml version="1.0" encoding="gb2312"?>
<blog>
<name>java study</name>
<author>realsmy</author>
<url>http://www.blogjava.net/realsmy</url>
</blog>


2. 利用XSL文件来设置XML的样式
    blog.xml文件

<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type="text/xsl" href="blog.xsl" ?> 
<blog>
<name>java study</name>
<author>realsmy</author>
<url>http://www.blogjava.net/realsmy</url>
</blog>

    blog.xsl文件

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    
<xsl:template match="/">
        
<xsl:for-each select="blog">
            
<xsl:value-of select="name"/><br/>
            
<xsl:value-of select="author"/><br/>
            
<xsl:value-of select="url"/><br/>
        
</xsl:for-each>
    
</xsl:template>
</xsl:stylesheet>


这都是最简单的了。
xsl也是一个xml文档。它有自己的语法,有待学习。

关于xml的学习还在进行中。


分享到:
评论

相关推荐

    Python学习笔记--皮大庆.pdf.zip

    【Python学习笔记--皮大庆.pdf.zip】是一个针对初学者的Python编程教程,源自英文书籍《How to think like a computer scientist》。这本书以易懂的方式介绍了Python语言的基础知识,旨在帮助没有编程背景的人快速...

    xml基础学习笔记

    XML 基础学习笔记 XML 文档基本结构: 1. 文档说明:一个完整的 XML 文档中必须包含一个文档说明,这个说明表示该文档是一个 XML 文挡,以及遵循那个 XML 版本的规范。最简单的文档说明如下:`&lt;?xml version=”1.0...

    SSH学习笔记--整理.rar

    本压缩包“SSH学习笔记--整理.rar”包含了一份精心整理的SSH学习资源,对于想要深入理解SSH的初学者或者开发者来说,是一份非常有价值的资料。 首先,我们来看“马士兵Struts2学习笔记2011.doc”。Struts2是一个...

    北京圣思园xml学习笔记

    ### 北京圣思园XML学习笔记核心知识点详解 #### XML概述 - **XML全称**:eXtensible Markup Language(可扩展标记语言) - **学习XML的原因**: - 数据交换的需求日益增长,XML成为了电子商务的重要基础之一。 - ...

    XML资料大全--基础 语言 笔记课件

    XML,全称Extensible Markup Language,...通过本资料大全,你可以系统地学习XML的基础知识,逐步掌握如何创建、解析和利用XML进行数据管理。随着对XML理解的深入,你将能够更好地应对各种涉及数据交换和存储的IT项目。

    webservice学习笔记 -- XFrie

    【Web Service学习笔记——XFrie框架详解】 Web Service是一种通过网络进行通信的服务,它允许不同的应用程序之间进行数据交换,跨越了操作系统和编程语言的障碍。XFrie是一个轻量级、高性能的Java Web Service框架...

    Spring2.5.6学习笔记-最新

    以上是 Spring 2.5.6 学习笔记中的关键知识点,通过这些基础知识的学习,开发者可以开始构建基于 Spring 框架的应用程序。接下来,可以进一步深入学习 Spring 的高级特性,如事务管理、安全性、Web 开发等方面的知识...

    JavaScript高级程序设计2,学习笔记---第一篇

    这篇学习笔记将带你探索JavaScript的核心概念,包括变量、数据类型、控制流、函数、对象和类等,这些都是构建复杂应用程序的基础。 首先,我们要了解JavaScript的基础语法。在JavaScript中,变量是存储数据的容器,...

    DWR学习笔记-HelloWorld篇

    通过实践这个“HelloWorld”项目,开发者能够对DWR有初步的认识,为进一步探索DWR的高级特性,如文件上传、缓存控制、安全设置等打下基础。同时,这也是一种学习Web开发中前后端交互机制的有效途径。

    Dom4j学习教程+API+xml实用大全+xml学习笔记+htc

    标题"Dom4j学习教程+API+xml实用大全+xml学习笔记+htc"提及了几个关键主题,包括Dom4j的学习资源、API文档,以及关于XML的实用指南和学习笔记,还提到了一个名为"htc"的文件,可能是关于HTC设备或技术的文档。...

    springmvc学习笔记-springmvc注解开发.zip

    在"springmvc学习笔记--springmvc注解开发.zip"这个压缩包中,我们可以深入探讨Spring MVC的注解驱动开发方式,这是一种简洁且高效的开发模式。 1. **Spring MVC基础**: Spring MVC的核心组件包括...

    PHPXML学习笔记

    foreach ($xml-&gt;children() as $child) { echo 'Name: ' . $child-&gt;getName() . ', Value: ' . (string)$child . PHP_EOL; } ``` 创建并保存XML文件: ```php $doc = new DOMDocument(); $root = $doc-&gt;...

    XML学习笔记.doc

    XML学习笔记 本文档是一份详细的XML学习笔记,涵盖了XML的背景、XML和HTML的关系、SGML、XML和HTML的关系、XML文件、XML标记等方面的知识点。 一、XML的背景 XML是扩展的标记语言(eXtensible Markup Language)...

    java与xml 学习笔记整理

    Java操作XML是编程中常见的任务,特别是在处理配置文件、数据交换和存储时。XML文档对象模型(DOM)是一种广泛使用的解析XML的方式。DOM允许开发者通过Java代码与XML文档的结构进行交互,就像一棵树,每个元素、属性...

    Cocos2D-X开发学习笔记-游戏数据存储项目实例(上)

    在“Cocos2D-X开发学习笔记-游戏数据存储项目实例”中,你可能会学习到如何结合上述技术,创建一个实际的游戏数据存储系统。通过阅读教程和分析提供的项目文件"MyDataSave01",你将深入理解如何在实践中应用这些知识...

    python学习笔记-excel用例输入.pdf

    上述的“python学习笔记-excel用例输入.pdf”内容展示了如何使用Python读取Excel文件中的测试用例数据,并结合requests库执行接口自动化测试。这里主要涉及了以下几个知识点: 1. **xlrd库**:xlrd是一个Python库,...

    Spring学习笔记-cqupt

    在本篇 Spring 学习笔记中,我们将探讨 Spring 的入门、优点、组成以及重要的IOC理论。 1. **Spring 简介** Spring 是一个开源的、免费的 Java 框架,它的目标是减少企业级开发的复杂性。它集成了许多现有的技术,...

Global site tag (gtag.js) - Google Analytics