详细介绍XML操作总结的示例代码
更新时间:2023-11-23XML文档的解析
在XML操作中,经常需要对XML文档进行解析。该过程通常包括读取XML文件,解析XML文档,并且以某种形式操作XML文档,在此我们将介绍使用DOM方式解析XML文档的基本方法。以下是一段使用DOM方式读取XML文档并进行解析的示例代码:
<?php // 加载XML文件 $xml = new DOMDocument; $xml->load("test.xml"); // 获取根元素节点对象 $root = $xml->documentElement; // 获取元素节点列表 $items = $root->getElementsByTagName("item"); // 遍历元素节点列表,获取元素内容 foreach ($items as $item) { $name = $item->getElementsByTagName("name")->item(0)->nodeValue; $price = $item->getElementsByTagName("price")->item(0)->nodeValue; echo "$name: $price\n"; } ?>
XML文档的修改
在XML操作中,修改XML文档也是经常需要的过程。DOM方式可以方便的实现XML文档的修改,可以添加、删除、修改XML元素和属性。以下是一段使用DOM方式修改XML文档的示例代码:
<?php // 加载XML文件 $xml = new DOMDocument(); $xml->load("test.xml"); // 获取根元素节点对象 $root = $xml->documentElement; // 修改元素内容 $items = $root->getElementsByTagName("item"); foreach ($items as $item) { $price = $item->getElementsByTagName("price")->item(0); $price->nodeValue = $price->nodeValue * 2; } // 添加元素和属性 $item = $xml->createElement("item"); $attr = $xml->createAttribute("id"); $attr->value = "002"; $item->setAttributeNode($attr); $item->appendChild($xml->createElement("name", "item2")); $item->appendChild($xml->createElement("price", 100)); $root->appendChild($item); // 保存XML文件 $xml->save("test.xml"); ?>
XML文档的验证
在XML操作中,验证XML文档是否符合特定的模式也是必要的过程。可以使用DTD或XML Schema来定义XML文档的模式,并使用DOM方式进行验证。以下是一段使用DOM方式对XML文档进行验证的示例代码:
<?php // 加载XML文件 $xml = new DOMDocument; $xml->load('test.xml'); // 创建验证器对象 $validator = new DOMDocumentType; $validator->name = "test"; $validator->publicId = "-//TEST/DTD test 1.0//EN"; $validator->systemId = "test.dtd"; // 设置验证器并验证XML文档 $xml->doctype = $validator; $xml->validate(); ?>
XML文档的输出
在XML操作中,需要将XML文档导出为字符串或输出到浏览器中。可以使用DOM方式将XML文档转换为字符串,并使用header函数将其输出给浏览器。以下是一段使用DOM方式将XML文档输出到浏览器的示例代码:
<?php // 加载XML文件 $xml = new DOMDocument; $xml->load("test.xml"); // 转换为XML字符串 $xml_str = $xml->saveXML(); // 输出到浏览器 header('Content-type: text/xml; charset=utf-8'); echo $xml_str; ?>