php中SimpleXML生成与解析xml文件

例,生成xml文档

 代码如下 复制代码

class SimpleXMLExtended extends SimpleXMLElement {
  public function addCData($cdata_text) {
    $node = dom_import_simplexml($this);
    $no   = $node->ownerDocument;
    $node->appendChild($no->createCDATASection($cdata_text));
    }
  }
function array2xml($array, $xml = false){
    if($xml === false){
        $xml = new SimpleXMLExtended('<root/>');
    }
    foreach($array as $key => $value){
        if(is_array($value)){
            array2xml($value, $xml->addChild($key));
        }else{
            //如果包含汉字,转编码
            if (preg_match("/([x81-xfe][x40-xfe])/", $value, $match)) {
                $value = iconv('gbk', 'utf-8', $value);
            }
            $xml->$key = NULL; // VERY IMPORTANT! We need a node where to append
            $xml->$key->addCData($value);
            //$xml->$key->addAttribute('lang', 'en');
           // $xml->addChild($key, $value);
        }
    }
    return $xml->asXML();
}

SimpleXMLElement解析xml

 代码如下 复制代码

<?php
$content = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<test>
 <global_setting>
  <ping_protocol>HTTP</ping_protocol>
  <ping_port>80</ping_port>
  <ping_path>/index.html</ping_path>
  <response_timeout>5000</response_timeout>
  <health_check_interval>3000</health_check_interval>
  <unhealthy_threshold>2</unhealthy_threshold>
  <healthy_threshold>3</healthy_threshold>
 </global_setting>
 <instances>
  <instance ip="192.168.234.121"/>
  <instance ip="192.168.234.28"/>
 </instances>
</test>
XML;

$test = new SimpleXMLElement($content);

//获得ping_protocol的值
$ping_protocol = $test->global_setting->ping_protocol;
echo "ping_protocol : $ping_protocol n";

//打印出所有instance的IP
foreach ( $test->instances->instance as $instance) {
 echo "IP: {$instance['ip']} n" ;
}

PHP:指示支持该函数的最早的 PHP 版本。

函数 描述 PHP
__construct() 创建一个新的 SimpleXMLElement 对象。 5
addAttribute() 给 SimpleXML 元素添加一个属性。 5
addChild() 给 SimpleXML 元素添加一个子元素。 5
asXML() 从 SimpleXML 元素获取 XML 字符串。 5
attributes() 获取 SimpleXML 元素的属性。 5
children() 获取指定节点的子。 5
getDocNamespaces() 获取 XML 文档的命名空间。 5
getName() 获取 SimpleXML 元素的名称。 5
getNamespaces() 从 XML 数据获取命名空间。 5
registerXPathNamespace() 为下一次 XPath 查询创建命名空间语境。 5
simplexml_import_dom() 从 DOM 节点获取 SimpleXMLElement 对象。 5
simplexml_load_file() 从 XML 文档获取 SimpleXMLElement 对象。 5
simplexml_load_string() 从 XML 字符串获取 SimpleXMLElement 对象。 5
xpath() 对 XML 数据运行 XPath 查询。 5
时间: 2024-11-03 19:53:55

php中SimpleXML生成与解析xml文件的相关文章

PHP中DOMDocument生成与解析XML格式数据

数组  代码如下 复制代码 $arr[] = array( 'name' => $row['name'], 'sex' => $row['sex'], 'age' => $row['age'] ); 生成php  代码如下 复制代码 $doc = new DOMDocument('1.0', 'utf-8'); // 声明版本和编码 $doc->formatOutput = true; $r = $doc->createElement("root"); $

dom4j生成和解析xml文件

要生成和解析如下格式的xml文件:  代码如下 复制代码 <?xml version="1.0" encoding="UTF-8"?> <Message xmlns:xs="http://www.w3.org/2001/XMLSchema">   <User>     <id>1</id>     <name>李寻欢</name>     <age>3

Android中使用PULL方式解析XML文件深入介绍_Android

一.基本介绍 Android中极力推荐xmlpull方式解析xml. xmlpull不仅可用在Android上同样也适用于javase,但在javase环境中需自己获取xmlpull所依赖的类库,kxml2-2.3.0.jar,xmlpull_1_1_3_4c.jar. jar包下载网址 http://www.xmlpull.org/ http://kxml.sourceforge.net/ 二.例子 读取到xml的声明返回数字0 START_DOCUMENT; 读取到xml的结束返回数字1 E

java 使用JDOM解析xml文件

java中如何使用JDOM解析xml文件呢?以下小编就用实例为大家详细的介绍一下.需要的朋友可以参考下   JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析.生成.序列化以及多种操作.JDOM直接为JAVA编程服务.它利用更为强有力的JAVA语言的诸多特性(方法重载.集合概念以及映射),把SAX和DOM的功能有效地结合起来. JDOM的官方地址:http://www.jdom.org/1.首先新建一个接口和2个类,为后续做准备[Moveable.java] 复制代

php中DOMDocument与SimpleXML创建与解析xml程序

例子: DOM XML 解析器函数是 PHP 核心的组成部分.无需安装就可以使用这些函数. XML 文件 将在我们的例子中使用下面的 XML 文件:  代码如下 复制代码 <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</

listview-Android下载解析xml文件ListView中数据无法更新,要添加一个线程应该可以。求帮助

问题描述 Android下载解析xml文件ListView中数据无法更新,要添加一个线程应该可以.求帮助 我用的Android4.1的手机和Android4.2的模拟器,项目可以正常运行,没有报错,就是下载xml文件解析的数据无法正常显示到Listview中.之前用了个Thread()的可以下载解析xml,不用Thread()的话,就无法下载解析XML中数据,但是在Listview中使用Thread()又要报错了. @Override public boolean onOptionsItemSe

treeview-MFC中 解析XML文件,并用tree control 显示,如何进行对xml文件的增删改查?

问题描述 MFC中 解析XML文件,并用tree control 显示,如何进行对xml文件的增删改查? 如题,我利用tree control 显示了一个xml文件,然而不知道如何进行修改数据,就是点击了树形结构的节点,但是不知道如何定位点击的节点位置在原xml文件的位置? 解决方案 http://www.codeproject.com/Articles/11244/XML-TreeView-Control 解决方案二: simpleXML怎样解析一个xml文件,并对xml进行增删改查 过程Li

在Android系统中解析XML文件的方法_java

前言    在学习Android的Framework层源码时,Android大量的使用XmlPullParser来解析xml文件的源码.因此,这里也顺道介绍一下XmlPullParser的使用. XML    XML(eXtensible Markup Language)中文名为可扩展标记语言.标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等.用途    XML设计用了传送及携带数据信息,不用了表现或展示数据,HTML语言则用了表现数据,所以XML用途的焦点是

急急!为什么Applet中运用JDOM解析XML文件时,构造文档时失败啊

问题描述 为什么Applet中运用JDOM解析XML文件时,构造文档时失败啊SAXBuildersb=newSAXBuilder();Documentdoc=sb.build("E:/sample.xml");在main()程序中就不会有这样的问题,是不是安全问题请各路大侠帮忙了,谢啦!!!