xml格式说明文档

本文探讨了PHP中simplexml_load_string()函数在处理特定XML格式时出现的问题,包括属性解析后的数据丢失现象,并提供了一种将XML转换为JSON数组的自定义函数实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.vchome.net/dotnet/xml/xml4.htm


BTW,

    php的 simplexml_load_string() 无法处理诸如  

      <im:name>The Fault in Our Stars (Unabridged)</im:name>

  的xml文件,在其中的属性解析后会丢失


// 简单的xml解析示例(从xml字符串-->json数组)
//     $strXml为输入,$json 为输出

function normalizeSimpleXML($obj, &$result) {
	$data = $obj;
	if (is_object($data)) {
		$data = get_object_vars($data);
	}
	if (is_array($data)) {
		foreach ($data as $key => $value) {
			$res = null;
			normalizeSimpleXML($value, $res);
			if (($key == '@attributes') && ($key)) {
				$result = $res;
			} else {
				$result[$key] = $res;
			}
		}
	} else {
		$result = $data;
	}
}

$strXml = ""; // xml的字符串形式
$xml = simplexml_load_string($strXml);
$json = normalizeSimpleXML($xml, $result);


转载于:https://my.oschina.net/kakablue/blog/269766

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值