Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从SimpleXML解析ArrayOfString_Php_Xml_String_Simplexml_Arrayofstring - Fatal编程技术网

Php 从SimpleXML解析ArrayOfString

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

我正在从MySQL数据库中获取一大块XML数据,并试图解析出相关信息。有一个我以前从未见过的
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="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;ArrayOfString xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;  &lt;string&gt;7&lt;/string&gt;  &lt;string&gt;46&lt;/string&gt;  &lt;string&gt;4&lt;/string&gt;  &lt;string&gt;60&lt;/string&gt;  &lt;string&gt;5&lt;/string&gt;  &lt;string&gt;23&lt;/string&gt;  &lt;string&gt;50&lt;/string&gt; &lt;/ArrayOfString&gt;">
现在,您有了一个相当直接的XML文档:一个包含一系列
元素的
元素。因此,您可以使用
foreach
语句循环它们,并收集到一个数组中:

$array = [];
foreach ( $inner_sxe->string as $string_element ) {
      $string_value = (string)$string_element;
      $array[] = $string_value;
}

首先,您似乎将XML包装在XML中。也就是说,XML文档的部分外观如下:

<add value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;ArrayOfString xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;  &lt;string&gt;7&lt;/string&gt;  &lt;string&gt;46&lt;/string&gt;  &lt;string&gt;4&lt;/string&gt;  &lt;string&gt;60&lt;/string&gt;  &lt;string&gt;5&lt;/string&gt;  &lt;string&gt;23&lt;/string&gt;  &lt;string&gt;50&lt;/string&gt; &lt;/ArrayOfString&gt;">
现在,您有了一个相当直接的XML文档:一个包含一系列
元素的
元素。因此,您可以使用
foreach
语句循环它们,并收集到一个数组中:

$array = [];
foreach ( $inner_sxe->string as $string_element ) {
      $string_value = (string)$string_element;
      $array[] = $string_value;
}