首页 > 互联资讯 > 建站教程  > 

phpxml转为数组,php将字符串转换为数组

本文目录一览:

php读取XML文件,并解析成数组

simplexml_load_string可以把xml解析成对象,然后可以用var_dump进行解析。

php内部库并没有包含直接把xml解析成数组的模块。

而且xml本来包含节点概念,解析成对象以后可以直接访问每一个节点,而数组相对就要难以理解的多。

因此解析成数组并不比解析成对象有多少优势。

如果你对数组实在有需求的话,可以自己写一个库,并不会太难。

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转数组问题,求帮忙;

看看这样输出什么

if (file_exists('test.xml'))

{

$xml = simplexml_load_file('XML文件名');

var_dump($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转换成数组

xml转array方法没错,只是xml中有三个list,而数组中却不能出现三个$arr['list'],所以这个方法自动把三个list中的内容放进了一个二维数组中。

可以尝试直接取$arr['list'],取出结果应该就是 Array ( [0] = 1 [1] = 2 [2] = 3 ) 了。

php 将xml对象转换成数组,看不明白function simplexml_obj2array函数,请高人解释思路?

instanceof 用来检查前面的对象是否是后面这个类的实例,如果是则强制转换为数组


phpxml转为数组,php将字符串转换为数组由讯客互联建站教程栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“phpxml转为数组,php将字符串转换为数组