php 生成xml及读取xml

php读写xml基于DOMDocument方法

1.读xml内容:

xml文件plays.xml文档结构:

<?xml version="1.0" encoding="UTF-8"?>
<Plays>
    <play>
        <title id="001">rabits</title>
        <author>tom</author>
        <date>2015.1.2</date>
        <addr>Beijing Fengtai Juyuan</addr>
    </play>
    <play>
        <title id="002">Mom's Love</title>
        <author>Jim</author>
        <date>2015.4.5</date>
        <addr>Beijing haiding Juyuan</addr>
    </play>
</Plays>

php xml文档读操作:

<?php
    $doc = new DOMDocument();
    $doc->load("plays.xml");
    $plays = $doc->getElementsByTagName("play");
    
/**
  * xml文档读取
  */
    echo '<strong style="color:red">文档读取:</strong><br>';
    foreach( $plays as $play )
    {
        $titles = $play->getElementsByTagName("title");
        $title = $titles->item(0)->nodeValue;
        $authors = $play->getElementsByTagName("author");
        $author = $authors->item(0)->nodeValue;
        echo "$title - $author <br>";
    }
    
    echo "<hr>";
    
/**
   * xml文档属性读取
   */
    echo '<strong style="color:red">文档属性读取:</strong><br>';
    
    //首先建立一个DOMDocument对象
    $xml = new DOMDocument();
   //加载XML文件
    $xml->load("plays.xml");
    //获取所有的play标签
    $play = $xml->getElementsByTagName("play");
    foreach($play as $post)
    {
        $title = $post->getElementsByTagName("title");
        echo "Title Id: " . $title->item(0)->attributes->item(0)->nodeValue ."<br />";
    }
?>

表1 DOMDocument提供的读文档常用属性

 2.xml文档写操作:

<?php
$local_array=array(
    array("pid"=>"1", "name"=>"kitty","sex"=>"female"),
    array("pid"=>"2", "name"=>"tom","sex"=>"male"),
);

//创建新的XML文档
$doc = new DomDocument('1.0');
// 创建根节点
$root = $doc->createElement('root');
$root = $doc->appendChild($root);

foreach ($local_array as $a)
{
    $table_id = 'person';  //元素名称
    $occ = $doc -> createElement($table_id);  //创建元素
    $occ = $root -> appendChild($occ);  //加入元素
    $fieldname = 'pid';  //值
    $child = $doc -> createElement($fieldname);  //创建元素
    $child = $occ -> appendChild($child);  //加入值
    $fieldvalue = $a["pid"];
    $value = $doc -> createTextNode($fieldvalue);
    $child -> appendChild($value);
    
    $fieldname = 'name';
    $child = $doc -> createElement($fieldname);
    $child = $occ -> appendChild($child);

/**
  * xml属性写入方法
  */
    $child -> setAttribute('attr1', 'attr1Value');
    $child -> setAttribute('attr2', 'attr2Value');
    
    $fieldvalue = $a["name"];
    $value = $doc -> createTextNode($fieldvalue);
    $child -> appendChild($value);
    
    $fieldname = 'sex';
    $child = $doc -> createElement($fieldname);
    $child = $occ -> appendChild($child);
    $fieldvalue = $a["sex"];
    $value = $doc -> createTextNode($fieldvalue);
    $child -> appendChild($value);
}

$xml_string = $doc -> saveXML();
file_put_contents("file.xml", $xml_string);
echo $xml_string;

?>

 程序生成的xml文档结构如下:

<?xml version="1.0"?>
<root>
    <person>
        <pid>1</pid>
        <name attr1="attr1Value" attr2="attr2Value">kitty</name>
        <sex>female</sex>
    </person>
    <person>
        <pid>2</pid>
        <name attr1="attr1Value" attr2="attr2Value">tom</name>
        <sex>male</sex>
        </person>
</root>

表2 DOMDocument提供的常用写方法

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值