七、 修改XML
尽管文本数据和属性值可以通过使用简单XML加以设置,但是不能新建这些对象。然而,SimpleXM的确提供了一种方法来实现DomElement对象和DomElement对象之间的转换。为此,我修改了addCategory()函数来说明如何使用simplexml_import_dom()函数以添加目录和把该文档转换回简单的XML格式:
PHP:
function addCategory(SimpleXMLElement &$sXML, $catID, $catName) {
$xml = new DOMDocument;
$xml->loadXML($sXML->asXML());
$catName = $xml->createTextNode($catName); //创建一个结点来存放该文本
$category = $xml->createElement('category'); //创建一个目录元素
$category->appendChild($catName); //把文本添加到目录元素
$category->setAttribute('cid', $catID); //设置目录id
$XMLCategories = $xml->getElementsByTagName('categories')->item(0);
$XMLCategories->appendChild($category); //添加新目录
$sXML = simplexml_import_dom($xml);
return $sXML;
}
同样,SimpleXMLElement对象的asXML()函数可以用来检索XML字符串并把它保存回一个文件中。