[英]How to convert xml to array in php?
我的代碼是這樣的:
$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>';
?>
我想將XML轉換為PHP數組。 但是我發現了這樣的錯誤:
Warning: simplexml_load_string(): Entity: line 24: parser error : xmlParseEntityRef: no name in C:\xampp\htdocs\ngetest\xml.php on line 268
Warning: simplexml_load_string(): <HotelName>Test 2 & 1 Hotel</HotelName> in C:\xampp\htdocs\ngetest\xml.php on line 268
Warning: simplexml_load_string(): ^ in C:\xampp\htdocs\ngetest\xml.php on line 268
這似乎是由於存在和符號(Test 2&1 Hotel)而發生的。 我沒有找到解決此問題的正確方法
關於如何解決這個問題有什么建議嗎?
非常感謝你
嘗試這個:
$xmlparser = xml_parser_create();
xml_parse_into_struct($xmlparser,$xmlstring,$values);
xml_parser_free($xmlparser);
print_r($values);
希望這對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.