c语言编程笔录

首页 >   > 笔记大全

笔记大全

WEB页面工具语言XML好处

更新时间:2023-11-09
一、XML是什么? XML(eXtensible Markup Language)是一种语言,被设计成一种标准的信息交换格式,在网络应用中有着广泛的应用。与HTML一样,XML也是一种标记语言,但它只描述数据的内容,而不关心数据的展示形式,同时也可以自由定义标记元素的名称和属性,适用于各种不同的应用场景。与其他更为复杂的格式相比,XML具有容易学习、简单高效等优点,并且被应用于各种领域,如Web Service的通迅协议、数据存储、组件间数据交换、电子商务等。 下面简单介绍XML的一些基本特性。

1. XML格式定义语言

XML 常常和 DTD(Document Type Definition)一起使用,DTD 是用来定义 XML 文档的结构、元素名称、元素属性、元素类型、元素之间的关系等元素的规则的一套语言,这些规则约束着把数据存储在 XML 文档中时的合法性。 例如,下面是一个简单的DTD。这个DTD定义了一个XML文档,它包含一个标签,该标签包含了书名、作者、出版社等属性,以及该书的ISBN代码和价格。

  
  
  
  
  
]>

2. XML 按照树形结构进行存储

与HTML通常采用线性结构不同,XML数据的存储结构是树形结构,一个XML文档以一个根元素开始,其它元素则依次向下分支(即每个元素可以有多个子元素)。 例如,下面的代码定义了一个具有树形结构的XML文档:

  
    XML Developer's Guide
    Gambardella, Matthew
    2000
    44.95
  
  
    Network Security Cookbook
    Northcutt, Stephen
    2003
    49.99
  

3. XML 数据操作方式分为DOM和SAX两种方式

在Java中,我们可以使用DOM(Document Object Model,文档对象模型)和SAX(Simple API for XML,简单XML应用程序接口)两种方式对XML进行操作。 DOM模型将XML文档作为一个树形结构在内存中呈现,并提供一种易于操作的API,支持对XML文档的遍历、修改、删除等各种高级操作,但同时也由于内存消耗高、适用范围窄等问题而不适合处理超大规模的XML文件。 SAX模型则是事件驱动模型,采用回调函数的方式进行操作,该模型下只存在一小段XML片段在内存中,XML文档的所有操作都通过回调函数来完成,适用于超大规模的XML处理,但其完成XML文档的操作效率相对低下。 例如,下面是DOM方式下读取上述XML文档的代码:
// 执行DOM方式的XML文件读取
var xmlDoc,xmlDoc1;
if (window.DOMParser)
{
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(txt,"text/xml");
    xmlDoc1=parser.parseFromString(txt1,"text/xml");
}
else
{
    // 兼容IE老版本的方式
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.loadXML(txt); 
    xmlDoc1=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc1.async=false;
    xmlDoc1.loadXML(txt1);
}

4. XML 重点应用领域

XML已成为网络传输和存储数据的标准。作为网络协议的一部分,XML被广泛使用于各种领域,这包括: - Web Service中的信息交换 - 数据存储 - 组件间高效数据交换 - 数据转换 - 电子商务(如EDI)等。 例如,在Web Service的场景下,我们使用SOAP作为通讯协议,通过XML格式的文本传输数据,如下面的代码:

    
    
    
        
            MSFT
        
    

二、XML 带来的好处是什么? XML在程序的开发过程中有着广泛的应用,它以其简单易学、扩展性强等优点被程序员所青睐。下面我们来介绍一下XML的好处及其重要应用场景。

1. XML易于学习和理解

相比于其他格式, XML的学习难度相对较低,因为它相对简单,同时也更容易理解,下面是一个简单的XML文档的实例:

  
    Jacky Smith
    45
  
  
    Sally Smith
    14
  
  
    John Smith
    12
  

在这个XML文档中,你可以看到它的树形结构,每个元素都有一个明确的开始和结束标志,并且数据之间是分离的,易于理解和处理。 同时,与其他的编程语言一样,XML有它的目的,它被设计来描述数据、传输数据、存储数据,让信息(数据)作为一个整体传递,并且与其它应用交互。

2. XML的格式通用性很高

XML的格式通用性很高,它被设计成一种标准的数据交换模式,即使在不同平台、不同系统、不同语言的环境下,XML文档仍然可以被解释和使用。因为XML的标识符是Unicode字符编码的,所以它实际上支持各种不同的语言和文字,因此在处理多种语音数据、处理多语言的程序时,XML具有非常大的优势。

3. XML可扩展性强

XML可以自定义元素,这给XML带来了很好的扩展性。如果您有一个元素,但是您觉得它不够完整,或者未经适当的设计,您可以扩展它并添加需要的属性或数据。如果您需要更多的元素,您只需添加一个新的元素定义。这一点使XML成为一种通用的数据模型。XML还可以通过使用命名空间进行扩展,允许您在不同的XML文档中使用相同的元素和属性名,但指定不同的名称空间。 例如,下面是一个人员信息的XML文档,它包含了人员的姓名、性别、年龄、联系方式,同时也定义了需要用到的命名空间:

   张三 
  
     zhangsan@example.com 
     +86 13512345678 
  
  
   27 

4. XML应用广泛

XML具有非常广泛的应用场景,在以下场景中得到广泛运用: - 网络应用程序中的信息交换:XML 是一种轻量级的协议,与多种操作系统和编程语言兼容,因此 XML 通常用于在多个网络主机之间传输数据。 - 作为数据交换格式:XML是目前最流行的数据存储、传输和交换格式之一。许多数据库和框架都支持 XML 格式。XML 是一种非常灵活的数据格式,能够通过 XSLT 转换成其他的格式,如 JSON。 - Web 服务:Web 服务通常使用 XML 作为其数据格式之一。例如 SOAP 使用 XML 作为其消息格式,因此 XML 是用于与 Web 服务交互中的常见格式之一。 例如,下面是一个解析XML文档的完整的Java代码:
import java.io.File;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
 
public class ReadXMLFileDOM {
 
  public static void main(String argv[]) {
 
    try {
 
	File fXmlFile = new File("file.xml");
	DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
	DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
	Document doc = dBuilder.parse(fXmlFile);
 
	doc.getDocumentElement().normalize();
 
	System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
 
	NodeList nList = doc.getElementsByTagName("staff");
 
	System.out.println("----------------------------");
 
	for (int temp = 0; temp < nList.getLength(); temp++) {
 
		Node nNode = nList.item(temp);
 
		System.out.println("\nCurrent Element :" + nNode.getNodeName());
 
		if (nNode.getNodeType() == Node.ELEMENT_NODE) {
 
			Element eElement = (Element) nNode;
 
			System.out.println("Staff id : " + eElement.getAttribute("id"));
			System.out.println("First Name : " + eElement.getElementsByTagName("firstname").item(0).getTextContent());
			System.out.println("Last Name : " + eElement.getElementsByTagName("lastname").item(0).getTextContent());
			System.out.println("Nick Name : " + eElement.getElementsByTagName("nickname").item(0).getTextContent());
			System.out.println("Salary : " + eElement.getElementsByTagName("salary").item(0).getTextContent());
 
		}
	}
    } catch (Exception e) {
    e.printStackTrace();
    }
  }
}
三、总结 XML是一种通用的语言,被广泛用于网络应用程序中的信息交换、数据存储、组件间数据交换、电子商务等多个领域。其设计理念是简单易学、扩展性强,可以定义自己喜欢的标记元素,具有非常高的通用性和可移植性,支持超大规模的XML文件处理。XML有两种形式:DOM和SAX,其中DOM方式更适合数据元素较少、内存占用较小的处理场合,而SAX方式则更适合数据量巨大、内存占用较高的处理场合。因此,XML已经成为了程序开发中不可分割的一部分,掌握XML的相关技术对于程序员来说是非常重要的。