c语言编程笔录

首页 >   > 笔记大全

笔记大全

详细介绍XML操作总结的示例代码

更新时间:2023-11-23

XML文档的解析

在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;
?>