php - 将 XML 转换为关联数组

标签 php xml zend-framework

有没有办法使用 Zend Framework 和 PHP 将 XML 转换为数组?我见过有人使用 SimpleXML 来做到这一点,但我想知道是否有通过 Zend Framework 的方法。

示例 XML,我想转换为数组:

<library>
    <book>
        <authorFirst>Mark</authorFirst>
        <authorLast>Twain</authorLast>
        <title>The Innocents Abroad</title>
    </book>
    <book>
        <authorFirst>Charles</authorFirst>
        <authorLast>Dickens</authorLast>
        <title>Oliver Twist</title>
    </book>
</library>

转换后的数组如下所示:

Array 
( 
        [0] => Array ( 
                      [authorFirst] => Mark 
                      [authorLast] => Twain
                      [title] => Innocents Abroad
                     )
        [1] => Array (
                      [authorFirst] => Charles 
                      [authorLast] => Dickens
                      [title] => Oliver Twist
                     )
)

最佳答案

ZF 还使用 SimpleXML。对于您的示例:

$xml = simplexml_load_string($data);
$books = array();
foreach ($xml->books as $book) {
    $books[] = (array)$book;
}

var_dump($books) 然后会给你:

array(2) {
  [0]=>
  array(3) {
    ["authorFirst"]=>
    string(4) "Mark"
    ["authorLast"]=>
    string(5) "Twain"
    ["title"]=>
    string(20) "The Innocents Abroad"
  }
  [1]=>
  array(3) {
    ["authorFirst"]=>
    string(7) "Charles"
    ["authorLast"]=>
    string(7) "Dickens"
    ["title"]=>
    string(12) "Oliver Twist"
  }
}

如果您的书籍可能有嵌套元素,那么它会变得有点复杂。

关于php - 将 XML 转换为关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6733974/

相关文章:

php - 根据 3 个参数(加入日期、出生日期、学校学年)检查学生是否在托儿所、学前类、幼儿园

Java:从元素而不是文档创建 DOM 元素

php - Zend update() 更改 id,尽管 id 设置为 NULL 和 auto_increment

zend-framework - 带 htaccess 的 Zend 框架

php - 检查wordpress用户是否通过外部脚本登录

php - SQL JOIN 遇到问题

html - 使用 XSLT 将第一个 HTML 表格行转换为每个表格的标题行

arrays - 如何在 XSD 中表示 json 数组

php - 将 Facebook Connect 登录/注册与 Zend Framework 应用程序集成

php - strtotime 在转换日期字符串时返回 false