很多站长朋友们都不太清楚phpxml转换为数组,今天小编就来给大家整理phpxml转换为数组,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php 如何获取XML 并转成2维数组 2、 PHP中数组转换为XML格式 3、 PHP xml转换成数组 4、 PHP XML转数组问题,求帮忙; php 如何获取XML 并转成2维数组<?php
/**
* 功能:解析xml数据转换成二维数组
*
* @param string $dataXml
* @return array
*/
public static function getXmlData ( $strXml ) {
$pos = strpos($strXml, 'xml');
if ($pos) {
$xmlCode =simplexml_load_string($strXml,'SimpleXMLElement', LIBXML_NOCDATA);
$arrayCode=self::get_object_vars_final($xmlCode);
return $arrayCode ;
} else {
return '';
}
}
?>
PHP中数组转换为XML格式最近公司要做一个API接口 输出格式要有JSON与XML格式 在PHP中 输入JSON直接json_encode就可以 但输出XML没有提供函数 于是决定自己写一个
<?php
/**
* 数组转XML类库
*
* @filesource ArrayToXML php
* @author genolf
* @version / /
*
* 使用说明
* echo ArrayToXml::parse($array root );
*/
class ArrayToXML {
//文档对象
private static $doc = NULL;
//版本号
private static $version = ;
/**
* 初始化文档版本及编码
*
* @param string $version 版本号
* @param string $encoding XML编码
*/
public static function init($version $encoding) {
self::$doc = new DomDocument($version $encoding);
self::$doc >formatOutput = true;
}
/**
* 转换数组到XML
*
* @param array $array 要转换的数组
* @param string $rootName 要节点名称
* @param string $version 版本号
* @param string $encoding XML编码
*
* @return string
*/
public static function parse($array $rootName = root $version = $encoding = UTF ) {
self::init($version $encoding);
//转换
$node = self::convert($array $rootName);
self::$doc >appendChild($node);
return self::$doc >saveXML();
}
/**
* 递归转换
*
* @param array $array 数组
* @param string $nodeName 节点名称
*
* @return object (DOMElement)
*/
private static function convert($array $nodeName) {
if (!is_array($array)) return false;
//创建父节点
$node = self::createNode($nodeName);
//循环数组
foreach ($array as $key => $value) {
$element = self::createNode($key);
//如果不是数组 则创建节点的值
if (!is_array($value)) {
$element >appendChild(self::createValue($value));
$node >appendChild($element);
} else {
//如果是数组 则递归
$node >appendChild(self::convert($value $key $element));
}
}
return $node;
}
private static function createNode($name) {
$node = NULL;
//如果是字符串 则创建节点
if (!is_numeric($name)) {
$node = self::$doc >createElement($name);
} else {
//如果是数字 则创建默认item节点
$node = self::$doc >createElement( item );
}
return $node;
}
/**
* 创建文本节点
*
* @param string || bool || integer $value
*
* @return object (DOMText || DOMCDATASection );
*/
private static function createValue($value) {
$textNode = NULL;
//如果是bool型 则转换为字符串
if (true === $value || false === $value) {
$textNode = self::$doc >createTextNode($value ? true : false );
} else {
//如果含有HTML标签 则创建CDATA节点
if (strpos($value < ) > ) {
$textNode = self::$doc >createCDATASection($value);
} else {
$textNode = self::$doc >createTextNode($value);
}
}
return $textNode;
}
lishixinzhi/Article/program/PHP/201311/20849
PHP xml转换成数组xml转array方法没错,只是xml中有三个<list>,而数组中却不能出现三个$arr['list'],所以这个方法自动把三个<list>中的内容放进了一个二维数组中。
可以尝试直接取$arr['list'],取出结果应该就是 Array ( [0] => 1 [1] => 2 [2] => 3 ) 了。
PHP XML转数组问题,求帮忙;看看这样输出什么
if (file_exists('test.xml'))
{
$xml = simplexml_load_file('XML文件名');
var_dump($xml);
}
然后就是数组转换了
关于phpxml转换为数组的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于phpxml转换为数组 php xml转数组的详细内容...