ry->firstChild->nodeValue] . '', '';
}
$catList = substr($catList, 0, -2); ?>
<div>
<h2><?php echo($title) ?></h2>
<p><b>Author:</b>: <?php echo($author) ?></p>
<p><b>Categories: </b>: <?php echo($catList) ?></p>
</div>
<? php endforeach; ?>
</html>
[html]
再提一下,修改XML是较麻烦的。例如,添加一个目录的代码如下:
PHP:
[code]
function addCategory(DOMDocument $xml, $catID, $catName) {
$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); //添加新目录
}
五、 保存XML
你可以使用save()和saveXML()方法之一来把DOM描述转换回XML字符串描述。save()方法用一指定的命名把XML保存到一个文件中,而saveXML()从文档的部分或整体中返回一个字符串。
$xml->save(''xml/library.xml'');
//保存全部文件
$categories=$xml->saveXML($XMLCategories);
//返回一个包含种类的字符串
为了说明把DOM兼容的代码移植到另外的语言是如何容易,下面是用JavaScript形式实现的与以上功能相同的代码:
Javascript:
复制代码 代码如下:
function doXML(){
/* 首先创建一个种类列表*/
var categories = Array();
var XMLCategories = xml.getElementsByTagName(''categories'')[0];
var theCategories = XMLCategories.getElementsByTagName(''category'');
for (var i = 0; i < theCategories.length; i++) {
/* 注意我们是怎样得到属性的*/
var cid = theCategories[i].getAttribute(''cid'');
categories[cid] = theCategories[i].firstChild.nodeValue;
}
var theBooks = xml.getElementsByTagName(''book'');
for(var i = 0; i < theBooks.length; i++) {
var book = theBooks[i];
/* 查找标题*/
var title = book.getElementsByTagName(''title'')[0].firstChild.nodeValue;
/* 查找作者-为简单起见,我们假定仅有一个作者*/
var author = book.getElementsByTagName(''author'')[0].firstChild.nodeValue;
/* 列出种类*/
var bookCategories = book.getElementsByTagName(''category'');
var catList = '''';
for(var j = 0; j < bookCategories.length; j++) {
catList += categories[bookCategories[j].firstChild.nodeValue] + '', '';
}
catList = catList.substring(0, catList.length -2);
document.open();
document.write("<h2>" + title + "</h2>");
document.write("<p><b>Author:</b>: " + author + "</p>");
document.write("<p><b>Categories: </b>: " + catList + "</p>");
}
document.close();
}
六、 简单XML
简单XML确实简单。它允许使用对象和数组存取方法来存取一个XML文档及其元素和属性。操作方式很简单:
· 元素(Element)-这些被描述为SimpleXMLElement对象的单个属性。当有多个作为文档或元素的子元素存在时,每个元素能被使用数组索引标志加以存取。
$xml-&g