技术开发 频道

在PHP中开发XML应用程序之基础篇

    五、 保存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();
    }

 

0
相关文章