xmltoarrayphp
‘壹’ 多维php数组怎么转换成xml格式的数据
public function arrayToXml($arr){
$xml = "<xml>";
foreach ($arr as $key=>$val){
if(is_array($val)){
$xml.="<".$key.">".arrayToXml($val)."</".$key.">";
}else{
if (is_numeric($val)){
$xml.="<".$key.">".$val."</".$key.">";
}else{
$xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
}
}
}
$xml.="</xml>";
return $xml;
}
‘贰’ php读取xml文件
你的问题是2个
1.怎么读取文件?
这个问题一楼的回答了,用file函数就可以了,然后你
foreach ($arr as $line) {
echo $line."<br />";
}
2.读取XML,
那么2楼的回答了,但是前提是,你必须知道这个XML的结构,才能使用相关的dom函数
‘叁’ php 解析xml 的方法
$url =“给你接口的路径";
$doms = simplexml_load_file ( $url );//直接把路径放在simplexml_load_file 方法里就行$doms里存放的就是读取的 XML 信息,你可以print_r($doms)试一下
然后用循环你就可以获得 XML里面的信息了
foreach ( $doms->节点名字 as $studys )
{
echo $studys."</br>";//输入一下结果可以看一下
}
注意:simplexml_load_file ( $url )这个方法解析出来的中文只能是utf-8 如果你的项目使用的不是该编码会出现中文乱码,你可以用
iconv ( "UTF-8", "GB2312", “这里放你要转换的内容”);转换能你用的编码格式例如转换成GB2312
‘肆’ 如何用php读取xml内容并并放入数组
用不到正则。要某一个<results>只要指定索引值即可。
‘伍’ php 怎么将数组转xml的函数
没有现成函数,只能自己写;我有一个别人写的函数:
<?php
class A2Xml {
private $version = '1.0';
private $encoding = 'UTF-8';
private $root = 'root';
private $xml = null;
function __construct() {
$this->xml = new XmlWriter();
}
function toXml($data, $eIsArray=FALSE) {
if(!$eIsArray) {
$this->xml->openMemory();
$this->xml->startDocument($this->version, $this->encoding);
$this->xml->startElement($this->root);
}
foreach($data as $key => $value){
if(is_array($value)){
$this->xml->startElement($key);
$this->toXml($value, TRUE);
$this->xml->endElement();
continue;
}
$this->xml->writeElement($key, $value);
}
if(!$eIsArray) {
$this->xml->endElement();
return $this->xml->outputMemory(true);
}
}
}
$res = array(
'hello' => '11212',
'world' => '232323',
'array' => array(
'test' => 'test',
'b' => array('c'=>'c', 'd'=>'d')
),
'a' => 'haha'
);
$xml = new A2Xml();
echo $xml->toXml($res);
‘陆’ php读取XML文件,并解析成数组
simplexml_load_string可以把xml解析成对象,然后可以用var_mp进行解析。
php内部库并没有包含直接把xml解析成数组的模块。
而且xml本来包含节点概念,解析成对象以后可以直接访问每一个节点,而数组相对就要难以理解的多。
因此解析成数组并不比解析成对象有多少优势。
如果你对数组实在有需求的话,可以自己写一个库,并不会太难。
‘柒’ PHP怎么把提取到的XML数据转换成三维数组
functionxmlToArray($xml)
{
//将XML转为array
$array_data=json_decode(json_encode(simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOCDATA)),true);
return$array_data;
}
‘捌’ 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 '';
}
}
?>