PHP输出XML格式数据的方法总结

5年以前  |  阅读数:844 次  |  编程语言:PHP 

本文实例讲述了PHP输出XML格式数据的方法。分享给大家供大家参考,具体如下:

方法1:


    <?php
    header("Content-type: text/xml");
    echo "<?xml version='1.0' encoding='UTF-8'?>";
    echo "<users>";
    echo "<user>";
      echo "<name>";
      echo "小小菜鸟";
      echo "</name>";
      echo "<age>";
      echo "24";
      echo "</age>";
      echo "<sex>";
      echo "男";
      echo "</sex>";
    echo "</user>";
    echo "<user>";
      echo "<name>";
      echo "艳艳";
      echo "</name>";
      echo "<age>";
      echo "23";
      echo "</age>";
      echo "<sex>";
      echo "女";
      echo "</sex>";
    echo "</user>";
    echo "</users>";
    ?>

上述示例运行效果图如下:

方法2:


    <?php
    header("Content-type: text/xml");
    echo "<?xml version='1.0' encoding='UTF-8'?>";
    echo "<users><user><name> 小小菜鸟</name><age>24</age><sex>男</sex>< /user><user><name>艳艳</name><age>23< /age><sex>女</sex></user></users>";
    ?>

方法3:


    <?php
    header('Content-Type: text/xml;');
    //创建新的xml文件
    $dom = new DOMDocument('1.0', 'utf-8');
    //建立<response>元素
    $response = $dom->createElement('response');
    $dom->a($response);
    //建立<books>元素并将其作为<response>的子元素
    $books = $dom->createElement('books');
    $response->a($books);
    //为book创建标题
    $title = $dom->createElement('title');
    $titleText = $dom->createTextNode('PHP与AJAX');
    $title->a($titleText);
    //为book创建isbn元素
    $isbn = $dom->createElement('isbn');
    $isbnText = $dom->createTextNode('1-21258986');
    $isbn->a($isbnText);
    //创建book元素
    $book = $dom->createElement('book');
    $book->a($title);
    $book->a($isbn);
    //将<book>作为<books>子元素
    $books->a($book);
    //在一字符串变量中建立XML结构
    $xmlString = $dom->saveXML();
    //输出XML字符串
    echo $xmlString;
    ?>

1.php输出xml的实例


    header('Content-Type: text/xml');
    $sql = "select * from article order by post_date limit 100";
    $re = $db->query($sql);
    echo "<?xml version="1.0" encoding="utf-8"?>\n";
    echo "<data>\n";
    while($row = $db->fetchArray($re)){
    echo "<event ";
    echo "start="".strftime ("%b %d %Y %H:%M:%S", $row['post_date'])."" ";
    echo "title="".htmlspecialchars($row['title'])."" ";
    echo "link="tdetail.php?id=".$row['time_point'].""";
    echo ">";
    echo htmlspecialchars($row['content']);
    echo "</event>\n";
    }
    echo "</data>";

2.用JavaScript操作XML 实例

文中尽量用上所有的操作和属性,以做示范


    <script language="JavaScript">
    <!--
    var doc = new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM")
    //加载文档
    //doc.load("b.xml");
    //创建文件头
    var p = doc.createProcessingInstruction("xml","version='1.0'  encoding='gb2312'");
    //添加文件头
    doc.a(p);
    //用于直接加载时获得根接点
    //var root = doc.documentElement;
    //两种方式创建根接点
    // var root = doc.createElement("students");
    var root = doc.createNode(1,"students","");
    //创建子接点
    var n = doc.createNode(1,"ttyp","");
    //指定子接点文本
    //n.text = " this is a test";
    //创建孙接点
    var o = doc.createElement("sex");
    o.text = "男"; //指定其文本
    //创建属性
    var r = doc.createAttribute("id");
    r.value="test";
    //添加属性
    n.setAttributeNode(r);
    //创建第二个属性
    var r1 = doc.createAttribute("class");
    r1.value="tt";
    //添加属性
    n.setAttributeNode(r1);
    //删除第二个属性
    n.removeAttribute("class");
    //添加孙接点
    n.a(o);
    //添加文本接点
    n.a(doc.createTextNode("this is a text node."));
    //添加注释
    n.a(doc.createComment("this is a comment\n"));
    //添加子接点
    root.a(n);
    //复制接点
    var m = n.cloneNode(true);
    root.a(m);
    //删除接点
    root.removeChild(root.childNodes(0));
    //创建数据段
    var c = doc.createCDATASection("this is a cdata");
    c.text = "hi,cdata";
    //添加数据段
    root.a(c);
    //添加根接点
    doc.a(root);
    //查找接点
    var a = doc.getElementsByTagName_r("ttyp");
    //var a = doc.selectNodes("//ttyp");
    //显示改接点的属性
    for(var i= 0;i<a.length;i++)
    {
        alert(a.xml);
        for(var j=0;j<a.attributes.length;j++)
        {
         alert(a.attributes[j].name);
        }
    }
    //修改节点,利用XPATH定位节点
    var b = doc.selectSingleNode("//ttyp/sex");
    b.text = "女";
    //alert(doc.xml);
    //XML保存(需要在服务端,客户端用FSO)
    //doc.save();
    //查看根接点XML
    if(n)
    {
        alert(n.ownerDocument.xml);
    }
    //-->
    </script>

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

在线格式化XML/在线压缩XML:
http://tools.jb51.net/code/xmlformat

XML在线压缩/格式化工具:
http://tools.jb51.net/code/xml_format_compress

XML代码在线格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP针对XML文件操作技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例