你好我有php var(string)看起来像xml: 它不是真正的xml文件只是php字符串,具有与xml相同的结构。 我需要在php循环中从它获取ROW_DATA字段。 (这是我从肥皂网服务获得的xml结构)。
2013年7月9日 10时01分29秒 上午 2013年7月9日 10时01分29秒 AM
<ROW_DATA>
<AMOUNT_ROOMS>2</AMOUNT_ROOMS>
<SUPP_MOVIE_NAME>tiz</SUPP_MOVIE_NAME>
<AMOUNT_NIS>3680</AMOUNT_NIS>
<PRICE_DOCKET_ID>1233</PRICE_DOCKET_ID>
</ROW_DATA>
<ROW_DATA>
<AMOUNT_ROOMS>1</AMOUNT_ROOMS>
<SUPP_MOVIE_NAME>mantiz</SUPP_MOVIE_NAME>
<AMOUNT_NIS>3690</AMOUNT_NIS>
<PRICE_DOCKET_ID>1234</PRICE_DOCKET_ID>
</ROW_DATA>
<StartTime>7/9/2013
10:01:29
AM</StartTime>
<EndTime>7/9/2013
10:01:30
AM</EndTime>
现在我需要在php数组中得到这个... 任何想法,请????
答案 0 :(得分:4)
imo,更好的方法是:
将heredoc与xml定义一起使用
$string = <<<XML
<?xml version='1.0'?>
... // your xml here
XML;
返回数组,如果需要,则返回SimpleXMLElement Object
$xml = (array)simplexml_load_string($string);
答案 1 :(得分:2)
$str = '<ROOT>
<StartTime>7/9/2013
10:01:29
AM</StartTime>
<EndTime>7/9/2013
10:01:29
AM</EndTime>
<ROW_DATA>
<AMOUNT_ROOMS>2</AMOUNT_ROOMS>
<SUPP_MOVIE_NAME>tiz</SUPP_MOVIE_NAME>
<AMOUNT_NIS>3680</AMOUNT_NIS>
<PRICE_DOCKET_ID>1233</PRICE_DOCKET_ID>
</ROW_DATA>
<ROW_DATA>
<AMOUNT_ROOMS>1</AMOUNT_ROOMS>
<SUPP_MOVIE_NAME>mantiz</SUPP_MOVIE_NAME>
<AMOUNT_NIS>3690</AMOUNT_NIS>
<PRICE_DOCKET_ID>1234</PRICE_DOCKET_ID>
</ROW_DATA>
<StartTime>7/9/2013
10:01:29
AM</StartTime>
<EndTime>7/9/2013
10:01:30
AM</EndTime>
</ROOT>';
$xml = simplexml_load_string($str);
print_r($xml);
输出:
SimpleXMLElement Object
(
[StartTime] => Array
(
[0] => 7/9/2013
10:01:29
AM
[1] => 7/9/2013
10:01:29
AM
)
[EndTime] => Array
(
[0] => 7/9/2013
10:01:29
AM
[1] => 7/9/2013
10:01:30
AM
)
[ROW_DATA] => Array
(
[0] => SimpleXMLElement Object
(
[AMOUNT_ROOMS] => 2
[SUPP_MOVIE_NAME] => tiz
[AMOUNT_NIS] => 3680
[PRICE_DOCKET_ID] => 1233
)
[1] => SimpleXMLElement Object
(
[AMOUNT_ROOMS] => 1
[SUPP_MOVIE_NAME] => mantiz
[AMOUNT_NIS] => 3690
[PRICE_DOCKET_ID] => 1234
)
)
)
答案 2 :(得分:0)
除了回答brbcoding可以追加:
print_r($xml->xpath('/ROOT'));
这会将数据作为数组返回。
要在循环中将它们显示到浏览器,您可以获得部分xml 方法 xpath 或者使用像$ xml-&gt; StartTime
这样的属性