如何在php中将xml转换为数组?
我的代码如下:如何在php中将xml转换为数组?,php,xml,Php,Xml,我的代码如下: $xmlstring = '<Response> <Auth> <UserID>test</UserID> <UserIP>123</UserIP> <XmlVersion>Testing Version</X
$xmlstring = '<Response>
<Auth>
<UserID>test</UserID>
<UserIP>123</UserIP>
<XmlVersion>Testing Version</XmlVersion>
</Auth>
<SearchAvailRequest>
<CountryCd>ID</CountryCd>
<CityCd>JOG</CityCd>
<CheckIn>2016-01-08</CheckIn>
<CheckOut>2016-01-09</CheckOut>
</SearchAvailRequest>
<SearchAvailResponse>
<Hotel>
<HotelNo>1</HotelNo>
<HotelCode>321</HotelCode>
<HotelName>Test 1 Hotel</HotelName>
<RmGrade>Deluxe</RmGrade>
<RmGradeCode>DLX</RmGradeCode>
</Hotel>
<Hotel>
<HotelNo>2</HotelNo>
<HotelCode>212</HotelCode>
<HotelName>Test 2 & 1 Hotel</HotelName>
<RmGrade>Deluxe</RmGrade>
<RmGradeCode>DLX</RmGradeCode>
</Hotel>
</SearchAvailResponse>
</Response>';
$xml = simplexml_load_string($xmlstring, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
echo '<pre>';print_r($array);echo '</pre>';
?>
$xmlstring='0
测试
123
测试版本
身份证件
慢跑
2016-01-08
2016-01-09
1.
321
测试1酒店
豪华的
DLX
2.
212
测试2&1酒店
豪华的
DLX
';
$xml=simplexml\u load\u字符串($xmlstring,“simplexmlement”,LIBXML\u NOCDATA);
$json=json_encode($xml);
$array=json_decode($json,TRUE);
回声';打印(数组);回声';
?>
我想将XML转换为PHP数组。
但我发现了这样一个错误:
$xmlparser = xml_parser_create();
xml_parse_into_struct($xmlparser,$xmlstring,$values);
xml_parser_free($xmlparser);
print_r($values);
警告:simplexml\u load\u string():实体:第24行:解析器错误:第268行的C:\xampp\htdocs\ngetest\xml.php中没有名称
警告:simplexml\u load\u string():第268行C:\xampp\htdocs\ngetest\xml.php中的测试2和1 Hotel
警告:C:\xampp\htdocs\ngetest\xml.php中的simplexml\u load\u string():^268行
这似乎是因为存在和符号(测试2和1酒店)。
我没有找到解决这个问题的正确方法
对我如何解决这个问题有什么建议吗
非常感谢试试这个:
希望这对您有所帮助。试试这个:
希望这对您有所帮助。@Chetan Ameta,非常感谢。它起作用了。我添加如下代码:
$xmlstring=str_replace('&','amp;',$xmlstring)
@Chetan Ameta,非常感谢。它起作用了。我添加如下代码:$xmlstring=str_replace('&','amp;',$xmlstring)代码>。
$xmlparser = xml_parser_create();
xml_parse_into_struct($xmlparser,$xmlstring,$values);
xml_parser_free($xmlparser);
print_r($values);