【问题标题】:Using php explode to iterate through an array from XML [duplicate]使用 php explode 遍历 XML 中的数组 [重复]
【发布时间】:2017-06-09 14:03:48
【问题描述】:

我无法在 xml 文件中获取歌曲类型。首先,我正在使用

加载 XML 文件

$xmlDoc = file_get_contents('/songs.xml');

一旦文件被加载到一个字符串中,我使用

将它们分解成一个数组

$songs = explode("<song>", $xmlDoc);

我曾尝试使用foreach 循环遍历每首歌曲,然后分解类型,但这并没有给我它包含Rock</type> 的类型。

songs.xml

<songs>
    <song>
        <title>Paradise City</title>
        <artist>Guns & Roses</artist>
        <type>Rock</type>
    </song>
    <song>
        <title>One Love</title>
        <artist>Bob Marley</artist>
        <type>Reggae</type>
    </song>
    <song>
        <title>Sweet Child Mine</title>
        <artist>Guns & Roses</artist>
        <type>rock</type>
    </song>
</songs>

【问题讨论】:

  • 有 XML 解析器是有原因的,使用它们。例如。 SimpleXMLDOM.
  • @JonStirling 谢谢,将研究 SimpleXML 并更新我刚开始使用 php 时的发现。

标签: php arrays xml


【解决方案1】:

您需要使用 SimpleXMLElement 或 DomDocument

来自 W3C 的示例:https://www.w3schools.com/php/php_xml_simplexml_read.asp

$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
print_r($xml);
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )

之后,您可以像解析数组一样解析“xml”。享受

【讨论】:

  • 一旦这是在数组中,我是否只需使用 foreach 循环并使用密钥访问项目,例如 item['type'] 感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2016-08-24
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 1970-01-01
  • 2012-02-28
  • 1970-01-01
  • 2017-09-28
相关资源
最近更新 更多