如何将simpleXML字符串转换为数组

时间:2014-10-14 16:43:44

标签: php arrays simplexml

我从SQL表中获取关键字,该表返回一个如下所示的simpleXML字符串:

<ranks>
  <tags>
    <tag>Alabama</tag>
    <tagID>1</tagID>
  </tags>
  <tags>
    <tag>Alaska</tag>
    <tagID>2</tagID>
  </tags>
  <tags>
    <tag>Arizona</tag>
    <tagID>3</tagID>
  </tags>
</ranks>

现在我需要以数组的形式将其存储为变量。

有人可以告诉我如何实现这个目标吗? 我对数组很新,并且不知道从这里开始的方法,因为每个标记总是有两个值,即标记名称和tagID,而我只需要一个带有标记名称的数组。 理想情况下,结果应如下所示:

$tags = ['Alabama', 'Alaska', 'Arizona'];

1 个答案:

答案 0 :(得分:1)

使用此功能:

function xml_to_array($xml,$main_heading = '') {
    $deXml = simplexml_load_string($xml);
    $deJson = json_encode($deXml);
    $xml_array = json_decode($deJson,TRUE);
    if (! empty($main_heading)) {
        $returned = $xml_array[$main_heading];
        return $returned;
    } else {
        return $xml_array;
    }
}

您可以通过以下代码创建XML数组:

    $simple = 'your xml';
    $data_array = xml_to_array($simple);

如果您的XML是单个文件,请使用file_get_contents()获取文件内容;