📜  PHP-XML简介(1)

📅  最后修改于: 2023-12-03 15:33:39.741000             🧑  作者: Mango

PHP-XML简介

XML(可扩展标记语言)是一种文本格式,用于存储和传输数据。PHP 提供了丰富的函数和扩展来处理 XML。

解析 XML

PHP 提供了两种解析 XML 的方式:SAX(Simple API for XML)和 DOM(Document Object Model)。

SAX

SAX 是一种基于事件的解析器。它逐行扫描 XML 文档,当它发现某个元素时,它会触发一个事件(例如 startElementendElement)来通知应用程序。因此 SAX 解析器常常是一个包含多个回调函数的类。

可以使用 PHP 内置的 xml_parser_create 函数创建 SAX 解析器,并使用 xml_set_element_handler 函数注册回调函数。

$parser = xml_parser_create();

xml_set_element_handler($parser, "startElement", "endElement");

function startElement($parser, $name, $attrs) {
  // 处理元素开始标签 
}

function endElement($parser, $name) {
  // 处理元素结束标签 
}
DOM

DOM 是一种基于树形结构的解析器。它将整个 XML 文档加载到内存中,并将其表示为一个 DOM 树。每个 XML 元素都是树中的一个节点对象。可以使用 DOM 解析器轻松地遍历树并操作其节点。

可以使用 PHP 内置的 DOMDocument 类创建 DOM 解析器。

$doc = new DOMDocument();
$doc->loadXML($xml);

$elements = $doc->getElementsByTagName("element");
foreach ($elements as $element) {
    // 处理元素 
}
生成 XML

可以使用 SimpleXMLElement 类创建新的 XML 文档。可以使用对象和数组来创建 XML 元素和属性。

$xml = new SimpleXMLElement('<root/>');
$xml->addChild('child1', 'value1');
$child2 = $xml->addChild('child2');
$child2->addAttribute('attribute', 'value2');
解析和生成 XML 文件

可以使用 simplexml_load_filesimplexml_load_string 函数从 XML 文件或字符串中加载 XML 文档。

$xml = simplexml_load_file('example.xml');

// 遍历元素 
foreach ($xml->children() as $child) {
    // 处理元素 
}

// 创建 XML 文档 
$xml = new SimpleXMLElement('<root/>');
$xml->addChild('child1', 'value1');
$xml->asXML('example.xml');
应用场景

XML 在 Web 应用程序中使用广泛,可以用于数据交换、配置文件、模板等等。常见的应用场景包括 RSS 订阅、SOAP Web 服务、AJAX 数据传输等。

参考文献