对于想了解PHP处理数组和XML之间的互相转换的读者,本文将提供新的信息,我们将详细介绍php处理数组和xml之间的互相转换方法,并且为您提供关于2.7基本数据类型之间的互相转换[Swift原创教程]
对于想了解PHP处理数组和XML之间的互相转换的读者,本文将提供新的信息,我们将详细介绍php处理数组和xml之间的互相转换方法,并且为您提供关于2.7 基本数据类型之间的互相转换 [Swift原创教程]、array2xml和xml2array,xml与array的互相转计划_PHP教程、java 中基本类型与字符串之间的互相转换、JavaScript进制数之间的互相转换的有价值信息。
本文目录一览:- PHP处理数组和XML之间的互相转换(php处理数组和xml之间的互相转换方法)
- 2.7 基本数据类型之间的互相转换 [Swift原创教程]
- array2xml和xml2array,xml与array的互相转计划_PHP教程
- java 中基本类型与字符串之间的互相转换
- JavaScript进制数之间的互相转换
PHP处理数组和XML之间的互相转换(php处理数组和xml之间的互相转换方法)
在开发中,我们经常会遇到数组与XML之间的互相转换,尤其在处理接口开发的时候经常用到,比如对方客户端POST一个XML格式的数据到服务器上,服务器上的程序要负责接收解析,还有需要将数据表数据以XML格式提供给第三方等等应用。
本文我们将简单介绍如何使用PHP处理数组和XML之间的互相转换。
源码下载:PHP数组与XML之间的转换
PHP将数组转换成XML
PHP可以将数组转换成xml格式,简单的办法是遍历数组,然后将数组的key/value转换成xml节点,再直接echo输出了,如:
function arrayToXml($arr){ $xml = "<root>"; foreach ($arr as $key=>$val){ if(is_array($val)){ $xml.="<".$key.">".arrayToXml($val)."</".$key.">"; }else{ $xml.="<".$key.">".$val."</".$key.">"; } } $xml.="</root>"; return $xml; }
我测试了下,这个最简单,速度又快,支持多为数组,中文也不会乱码。
另一种方法是利用DOMDocument来生成xml结构:
function arrayToXml($arr,$dom=0,$item=0){ if (!$dom){ $dom = new DOMDocument("1.0"); } if(!$item){ $item = $dom->createElement("root"); $dom->appendChild($item); } foreach ($arr as $key=>$val){ $itemx = $dom->createElement(is_string($key)?$key:"item"); $item->appendChild($itemx); if (!is_array($val)){ $text = $dom->createTextNode($val); $itemx->appendChild($text); }else { arrayToXml($val,$dom,$itemx); } } return $dom->saveXML(); }
它同样可以将数组转换成xml,而且支持多维数组,生成的xml中文也不会乱码。
PHP将XML转换成数组
做接口开发的时候经常会碰到别人提交给你的是xml格式的数据,常见的微信接口、支付宝接口等,他们的接口如发送消息通信都是xml格式的,那么我们先想办法拿到这个xml数据,然后再将其转化成数组。
假设我们获取到一个这样的XML:
<root> <user> 月光光abcd</user> <pvs>13002</pvs> <ips> <baidu_ip>1200</baidu_ip> <google_ip>1829</google_ip> </ips> <date>2016-06-01</date> </root>
通过simplexml_load_string()解析读取xml数据,然后先转成json格式,再转换成数组。
function xmlToArray($xml){ //禁止引用外部xml实体 libxml_disable_entity_loader(true); $xmlstring = simplexml_load_string($xml, ''SimpleXMLElement'', LIBXML_NOCDATA); $val = json_decode(json_encode($xmlstring),true); return $val; }
调用xmlToArray()可得到以下结果:
得到数组后,我们就可以对数据进行各种处理了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
- 递归实现php数组转xml的代码分享
- php实现将数组转换为XML的方法
- php下将XML转换为数组
- PHP中将数组转成XML格式的实现代码
- PHP如何将XML转成数组
- PHP实现的数组和XML文件相互转换功能示例
- PHP将XML转数组过程详解
- php中Array2xml类实现数组转化成XML实例
- php实现xml转换数组的方法示例
- PHP实现数组array转换成xml的方法
- php实现的数组转xml案例分析
2.7 基本数据类型之间的互相转换 [Swift原创教程]
原文:http://www.coolketang.com/staticCoding/5a9924257565717957671dfc.html
1. 本节课将为您演示数据类型的有效范围,以及基本数据类型之间的相互转换。
2. 由于此处给无符号常量赋值-1,导致出现错误提示,说明我们只可以给常量或变量,指定在其类型规定的数值范围之内的数值。
3. 由于此处给元符号常量指定的值,超过了它的类型所能容纳的最大值,所以出现溢出的错误提示。
4. 定义一个正常的16位无符号的整型常量。
5. 数值可以使用下划线作为千位分隔符。
6. 8位元符号的最大值为255,所以此处出现溢出的错误提示。
7. 将其数据修改为小于255的正整数。
8. 同样可以使用下划线作为数值的千位分隔符,即使数值小于一千.
9. 不同位数的数值无法相加,即使属于相同的类型。
10. 这时只需将其中较小的类型,向较大的类型转换即可。
11. 定义一个整型常量和一个浮点类型的常量。
12. 将整型常量强制转换成浮点类型,然后再进行相加。
13. 将浮点类型强制转换成整型时,小数部分将被省略。
14. 定义一个字符串类型的常量。
15. 将字符串转换为整型常量。
16. 同样可以将字符串,强制转换成浮点类型的常量。
17. 将字符串强制转换为双精度的浮点类型的常量。
18. 通过String类可以将整型转换成字符串类型。
19. 或者使用整型对象的描述属性,获得整型的字符串内容。
20. 通过斜线和左右小括号,也可以将整型常量嵌入到字符串中。
array2xml和xml2array,xml与array的互相转计划_PHP教程
php在做后台服务器的时候,经常会遇到这种情况,需要解析来自前台的xml文件,并将数据以xml格式返回,在这种情况下,xml与php中关联数组的转化是非常频繁的事情。比如flex和其他客户端程序与服务器的交互,经常会使用这种方法。下面是我归纳的两个方法,大大简化了xml与数组相互转化的工作量。
[php]
/**
*
* 将简单数组转化为简单的xml
* @param string $data 要进行转化的数组
* @param string $tag 要使用的标签
* @example
* $arr = array(
''rtxAccount''=>''aaron'',''ipAddr''=>''192.168.0.12'',
''conferenceList''=>array(''conference''=>
array(
array(''conferenceId''=>1212,''conferenceTitle''=>''quanshi 444'',''smeAccount''=>''bingxu.dong@quanshi.com''),
array(''conferenceId''=>454,''conferenceTitle''=>''quanshi meetting'',''smeAccount''=>''bingxu.dong@quanshi.com''),
array(''conferenceId''=>6767,''conferenceTitle''=>''quanshi meetting'',''smeAccount''=>''bingxu.dong@quanshi.com''),
array(''conferenceId''=>232323,''conferenceTitle''=>''quanshi uuu'',''smeAccount''=>''bingxu.dong@quanshi.com''),
array(''conferenceId''=>8989,''conferenceTitle''=>''quanshi meetting'',''smeAccount''=>''bingxu.dong@quanshi.com''),
array(''conferenceId''=>1234343212,''conferenceTitle''=>''quanshi meetting'',''smeAccount''=>''bingxu.dong@quanshi.com'')
)
)
);
转化为:
*/
function array2xml($data,$tag = '''')
{
$xml = '''';
foreach($data as $key => $value)
{
if(is_numeric($key))
{
if(is_array($value))
{
$xml .= "";
$xml .= array2xml($value);
$xml .="$tag>";
}
else
{
$xml .= "$value$tag>";
}
}
else
{
if(is_array($value))
{
$keys = array_keys($value);
if(is_numeric($keys[0]))
{
$xml .=array2xml($value,$key);
}
else
{
$xml .= "";
$xml .=array2xml($value);
$xml .= "$key>";
}
}
else
{
$xml .= "$value$key>";
}
}
}
return $xml;
}
}
xml2array
[php]
/**
*
* 将简单的xml转化成关联数组
* @param string $xmlString xml字符串
* @example
*
转化之后的关联数组:
Array
(
[conferenceTitle] => IT交流会 www.2cto.com
[startTime] => 2011-12-19 12:00:00
[rtxAccount] => andy1111111
[ipAddr] => 192.168.1.56
[duration] => 120
[conferenceType] => 1
[invitees] => Array
(
[invitee] => Array
(
[0] => Array
(
[rtxAccount] => 被邀请人1的RTX账号
[tel] => 被邀请人1电话号码
)
[1] => Array
(
[rtxAccount] => 被邀请人2的RTX账号
[tel] => 被邀请人2电话号码
)
)
)
)
*/
function xml2array($xmlString = '''')
{
$targetArray = array();
$xmlObject = simplexml_load_string($xmlString);
$mixArray = (array)$xmlObject;
foreach($mixArray as $key => $value)
{
if(is_string($value))
{
$targetArray[$key] = $value;
}
if(is_object($value))
{
$targetArray[$key] = xml2array($value->asXML());
}
if(is_array($value))
{
foreach($value as $zkey => $zvalue)
{
if(is_numeric($zkey))
{
$targetArray[$key][] = xml2array($zvalue->asXML());
}
if(is_string($zkey))
{
$targetArray[$key][$zkey] = xml2array($zvalue->asXML());
}
}
}
}
return $targetArray;
}
摘自 andy1219111的专栏
java 中基本类型与字符串之间的互相转换
1. 由 基本数据型态转换成 String
String 类别中已经提供了将基本数据型态转换成 String 的 static 方法
也就是 String.valueOf() 这个参数多载的方法
有下列几种
String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串
String.valueOf(char c) : 将 char 变量 c 转换成字符串
String.valueOf(char[] data) : 将 char 数组 data 转换成字符串
String.valueOf(char[] data, int offset, int count) :
将 char 数组 data 中 由 data[offset] 开始取 count 个元素 转换成字符串
String.valueOf(double d) : 将 double 变量 d 转换成字符串
String.valueOf(float f) : 将 float 变量 f 转换成字符串
String.valueOf(int i) : 将 int 变量 i 转换成字符串
String.valueOf(long l) : 将 long 变量 l 转换成字符串
String.valueOf(Object obj) : 将 obj 对象转换成 字符串, 等于 obj.toString()
2. 由 String 转换成 数字的基本数据型态
要将 String 转换成基本数据型态转
大多需要使用基本数据型态的包装类别
比如说 String 转换成 byte
可以使用 Byte.parseByte(String s)
这一类的方法如果无法将 s 分析 则会丢出 NumberFormatException
byte :
Byte.parseByte(String s) : 将 s 转换成 byte
Byte.parseByte(String s, int radix) : 以 radix 为基底 将 s 转换为 byte
double :
Double.parseDouble(String s) : 将 s 转换成 double
float :
Float..parseFloat(String s) : 将 s 转换成 float
int :
Integer.parseInt(String s) : 将 s 转换成 int
long :
Long.parseLong(String s) :将 s 转换成 long
JavaScript进制数之间的互相转换
前言:
进制转换是人们利用符号来计数的方法。进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。位权是指,进位制中每一固定位置对应的单位值。
一、十进制的数化为k进制的数
/** * 十进制的数化为k进制的数【返回数组的index=0位置是最高位】(取k取余法) * @num 10进制数 * @k k * @returns k进制数序列 */ function ckqy(num,k) { let y = []; while (num > 0) { let s = Math.floor(num / k); let _y = num % k; //console.log(num + " ÷ " + k + " = " + s + " ··· " + _y); if (s == 0) { y.push(num); num = 0; } else { y.push(_y); num = s; } } return y.reverse(); }
二、k进制的数化为十进制的数
/** * k进制的数化为十进制的数(乘幂相加法) * @kArray k进制数序列 * @k k * @returns 十进制的数 */ function kTo10(kArray,k){ let v10=0; let kArrayLen=kArray.length; for(let ind=0; ind<kArrayLen; ind++){ v10 += kArray[ind] * Math.pow(k,kArrayLen - 1 - ind); } return v10; }
三、例题
最近在刷面试题的时候看到一道进制转换题,
写完才发现可以用js的方法直接转换,这是自己总结的一些方法
1.其它进制转换为十进制数据
//可以直接用parseInt let num = parseInt(n1,n2); //n1:是需要转换为10进制的数 //n2:是被转换数据的进制值,如2,8,16等。
例如将十六进制的‘AA’转为十进制数据:
//十六进制的数:AA => 十进制的数:170 let num = parseInt(''AA'',16); //AA和0xAA都可,此时num = 170
2.十进制数据转换为其它进制
例如将十进制的170转为十六进制的数据
//十进制的数:170 => 十六进制的数:AA let num1=parseInt("170");//如果这个数是字符串格式的,需要执行这一步 console.log(num1); // 170 //toString里的参数可以是2,8,16等.设置转换10进制数据到对应进制格式,本例是将num转成16进制数据 let num2=num1.toString(16); console.log(num2); //aa
3.其它进制之间的相互转换
例如将十六进制的’AA‘转为二进制的数据
- 首先将十六进制转换为十进制数据
- 然后再将所得的十进制数据转为二进制数据
小结:进制之间的转换都是先将其他进制数据转为十进制,再用转好的十进制数据转为其他进制数据
//首先将十六进制的数:AA => 十进制的数:170 let num1 = parseInt(''AA'',16); //AA和0xAA都可 console.log(num1); // 170 let num2 = num1.toString(2); console.log(num2); //10101010
到此这篇关于JavaScript进制数之间的互相转换的文章就介绍到这了,更多相关JavaScript进制转换内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
- javascript十六进制数字和ASCII字符之间的转换方法
关于PHP处理数组和XML之间的互相转换和php处理数组和xml之间的互相转换方法的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于2.7 基本数据类型之间的互相转换 [Swift原创教程]、array2xml和xml2array,xml与array的互相转计划_PHP教程、java 中基本类型与字符串之间的互相转换、JavaScript进制数之间的互相转换等相关内容,可以在本站寻找。
本文标签: