c语言编程笔录

首页 >   > 笔记大全

笔记大全

xml文件介绍及使用

更新时间:2023-11-15

XML文件介绍

XML (可扩展标记语言) 是一种用于描述数据的标记语言,与 HTML 类似,但更灵活,可以自定义标签,不限于预定义标签。XML 的数据和标签不混杂在一起,可以方便地进行数据交换和共享。XML 文件采用独立于软件和硬件平台的文本格式,易于创建和处理。在程序员的工作中,XML 常用于配置文件、数据交换和信息传输等方面。

<person>
    <name>John</name>
    <age>25</age>
    <address>Beijing, China</address>
</person>

XML文件用途

XML 文件的主要用途是数据交换和信息传输。它可以轻松地在不同的系统之间传输数据,并由不同的应用程序进行处理。XML 还可以用于配置文件,特别是在网站和软件应用中。在 XML 文件中,可以定义自己的标记,达到更好的扩展性、可读性和可维护性。

<student>
    <name>Jenny</name>
    <age>21</age>
    <department>Computer Science</department>
    <score>90</score>
</student>
<student>
    <name>Alice</name>
    <age>20</age>
    <department>Electrical Engineering</department>
    <score>95</score>
</student>

XML文件格式

XML 文件通常由声明、元素和属性组成。在 XML 文件的开头,声明标签告诉解析器文件版本和编码方式。元素标签用于定义数据/文本内容,并可以嵌套。属性标签用于提供有关元素的其他信息,并可以包含在元素标记内部。

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
    <book category="cooking">
        <title>The Joy of Cooking</title>
        <author>John Doe</author>
        <year>2005</year>
    </book>
    <book category="children">
        <title>Green Eggs and Ham</title>
        <author>Dr. Seuss</author>
        <year>1960</year>
    </book>
</bookstore>

XML文件解析

XML 文件的解析主要有两种方式:DOM 和 SAX。DOM 解析器将 XML 文件读入内存,并创建文档对象模型 (DOM),可以随意访问和操作文档对象的属性和元素。SAX 解析器逐行读取 XML 文件,并触发事件,即按顺序处理 XML 元素。因此,DOM 是一种内存密集型操作,适用于较小的 XML 文件,而 SAX 适用于大型 XML 文件,可以减少内存占用。

// DOM 解析示例
var xmlDoc = loadXMLDoc("example.xml");
var books = xmlDoc.getElementsByTagName("book");
for (var i = 0; i < books.length; i++) {
    var title = books[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
    var author = books[i].getElementsByTagName("author")[0].childNodes[0].nodeValue;
    var year = books[i].getElementsByTagName("year")[0].childNodes[0].nodeValue;
    console.log(title + " - " + author + " - " + year);
}

// SAX 解析示例
var saxParser = new SAXParser();
saxParser.callbacks.startDocument = function() {};
saxParser.callbacks.endDocument = function() {};
saxParser.callbacks.startElement = function(elem, attr, prefix, uri, namespaces) {};
saxParser.callbacks.endElement = function(elem, prefix, uri) {};
saxParser.callbacks.text = function(text) {};
saxParser.callbacks.cdata = function(cdata) {};
saxParser.callbacks.comment = function(comment) {};
saxParser.parseString(rawData);