Php 从SimpleXML解析ArrayOfString
我正在从MySQL数据库中获取一大块XML数据,并试图解析出相关信息。有一个我以前从未见过的Php 从SimpleXML解析ArrayOfString,php,xml,string,simplexml,arrayofstring,Php,Xml,String,Simplexml,Arrayofstring,我正在从MySQL数据库中获取一大块XML数据,并试图解析出相关信息。有一个我以前从未见过的ArrayOfString,但是我需要从中获取值以供使用 我尝试过几种方法,包括SimpleXML的\uu ToString(),用(string)强制转换它等等,但都没有成功。如何正确地将其转换为可以分解为数组的字符串,或仅转换为数组 $game_ids = $machine_xml->add[25]->attributes()->value[0]; v
ArrayOfString
,但是我需要从中获取值以供使用
我尝试过几种方法,包括SimpleXML的\uu ToString()
,用(string)
强制转换它等等,但都没有成功。如何正确地将其转换为可以分解为数组的字符串,或仅转换为数组
$game_ids = $machine_xml->add[25]->attributes()->value[0];
var_dump($game_ids);
结果:
object(SimpleXMLElement)#2 (1) {
[0]=>
string(331) "<?xml version="1.0" encoding="utf-16"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>7</string>
<string>46</string>
<string>4</string>
<string>60</string>
<string>5</string>
<string>23</string>
<string>50</string>
</ArrayOfString>"
}
对象(simplexmlement)#2(1){
[0]=>
字符串(331)”
7.
46
4.
60
5.
23
50
"
}
首先,您似乎将XML包装在XML中。也就是说,XML文档的部分外观如下:
<add value="<?xml version="1.0" encoding="utf-16"?><ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <string>7</string> <string>46</string> <string>4</string> <string>60</string> <string>5</string> <string>23</string> <string>50</string> </ArrayOfString>">
现在,您有了一个相当直接的XML文档:一个包含一系列
元素的
元素。因此,您可以使用foreach
语句循环它们,并收集到一个数组中:
$array = [];
foreach ( $inner_sxe->string as $string_element ) {
$string_value = (string)$string_element;
$array[] = $string_value;
}
首先,您似乎将XML包装在XML中。也就是说,XML文档的部分外观如下:
<add value="<?xml version="1.0" encoding="utf-16"?><ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <string>7</string> <string>46</string> <string>4</string> <string>60</string> <string>5</string> <string>23</string> <string>50</string> </ArrayOfString>">
现在,您有了一个相当直接的XML文档:一个包含一系列
元素的
元素。因此,您可以使用foreach
语句循环它们,并收集到一个数组中:
$array = [];
foreach ( $inner_sxe->string as $string_element ) {
$string_value = (string)$string_element;
$array[] = $string_value;
}