PHP编程实战14-16

<!--PHP编程实战-->
<!--XML -->
<!--14-16-->
<!--使用SimpleXML生成基本的XML文档-->
<?php
$dogs_array = array(
    array("name" => "snoopy",
        "color" => "brown",
        "breed" => "beagle cross"
    ),
    array("name" => "jade",
        "color" => "black",
        "breed" => "lab cross"
    ),
);
$cats_array = array(
    array("name" => "teddy",
        "color" => "brown",
        "breed" => "tabby"
    ),
);

//从根节点开始生成xml
$animals = new SimpleXMLElement('<animals/>');

$cats_xml = $animals->addChild('cats');
$dogs_xml = $animals->addChild('dogs');

foreach ($cats_array as $c) {
    $cat = $cats_xml->addChild('cat');
    foreach ($c as $key => $value) {
        $tmp = $cat->addChild($key);
        $tmp->{0} = $value;
    }
}
foreach ($dogs_array as $c) {
    $dog = $dogs_xml->addChild('dog');
    foreach ($c as $key => $value) {
        $tmp = $dog->addChild($key);
        $tmp->{0} = $value;
    }
}

var_dump($animals);
$animals->asXML('animals.xml');

$animals_dom = new DOMDocument('1.0');
$animals_dom->preserveWhiteSpace = false;
$animals_dom->formatOutput = true;
//返回DOMElement
$animals_dom_xml = dom_import_simplexml($animals);
$animals_dom_xml = $animals_dom->importNode($animals_dom_xml, true);
$animals_dom_xml = $animals_dom->appendChild($animals_dom_xml);
$animals_dom->save('animals_formatted.xml');
print '<br/><br/>';
//
var_dump(simplexml_load_file('animals.xml'));
?>

知识点

  • 使用 new SimpleXMLElement('<animals/>');创建了一个新的SimpleXMLElement元素.为了自顶层元素向下依次填充文档,通过调用addChild来创建子元素,并将一个引用存储到新建的元素.
  • 通过元素的引用,就可以添加子元素.重复这个过程,可以生成一个完整的节点树.
  • 输出函数asXML不能很好地格式化输出.
  • 使用DOMDocument类可以很好第输出XML.
  • 节点要先引入再添加.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,786评论 1 92
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,860评论 25 708
  • 在春晚期间,有个叫姥说的向声。 确实,小时候,不想听大人的啰嗦。而长大之后,才知道血浓于水的道理。 小时候,不曾听...
    九翼天龙阅读 434评论 1 2
  • 首先,我有一个交往了将近两年的女朋友。 我清晰地记得初次和她相见的场景。不,不是“相见”,是我先邂逅她。 那一天是...
    敬千帆阅读 2,028评论 0 0