php - 如何将 XML 文件转换为 SimpleXMLElement() 数组?

标签 php xml arrays simplexml

我有一个 XML 文件:

<?xml version="1.0" encoding="iso-8859-1"?>
<deadlines>
    <deadline>
        <date>2010-07-01</date>
        <text>Residency Application for Fall Due</text>
    </deadline>
    <deadline>
        <date>2010-06-01</date>
        <text>Residency Application for Summer Due</text>
    </deadline>
    <deadline>
        <date>2010-07-20</date>
        <text>Summer Bill Due</text>
    </deadline>
</deadlines>

当我使用 simplexml_load_file() 将文件加载到 PHP 脚本中时,我得到以下信息:

SimpleXMLElement Object
(
    [deadline] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [date] => 2010-07-01
                    [text] => Residency Application for Fall Due
                )

            [1] => SimpleXMLElement Object
                (
                    [date] => 2010-06-01
                    [text] => Residency Application for Summer Due
                )

            [2] => SimpleXMLElement Object
                (
                    [date] => 2010-07-20
                    [text] => Summer Bill Due
                )

        )

)

为了让我的脚本将 XML 文件作为数组处理,我需要解析该文件并将其转换为以下格式:

Array
(
    [0] => SimpleXMLElement Object
        (
            [date] => 2010-07-01
            [text] => Residency Application for Fall Due
        )

    [1] => SimpleXMLElement Object
        (
            [date] => 2010-06-01
            [text] => Residency Application for Summer Due
        )

    [2] => SimpleXMLElement Object
        (
            [date] => 2010-07-20
            [text] => Summer Bill Due
        )

)

是否有 PHP 函数可以转换 XML 文件?谢谢

最佳答案

$deadlines = array();
$sxe = new SimpleXmlElement($xml);
foreach($sxe->deadline as $deadline) {
    $deadlines[] = $deadline;
}
print_r($deadlines);

$sxe = (array) new SimpleXmlElement($xml);
print_r( $sxe['deadline'] );

编辑抱歉,我假设您对 SimpleXml 足够熟悉,知道 constructor of SimpleXmlElement assumes you are passing the XML as a string 。要么更改行来读取

$sxe = new SimpleXmlElement($filename, NULL, TRUE);

或将其替换为

$sxe = simplexml_load_file($filename);

关于php - 如何将 XML 文件转换为 SimpleXMLElement() 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4024455/

相关文章:

arrays - 自定义 searchsortedfirst 方法

php - Zend - 在数据库中存储 session 数据

php - 以 json 形式返回表行并打印

php - 在functions.php中定义变量并在Wordpress中的函数钩子(Hook)中访问它们

C# XML 文档网站链接

java - 找到二维数组中的最小值

php - 当客户端禁用 Javascript 时,有没有办法从 PHP 执行外部 Javascript?

XML 架构 : Referenced attribute is missing

java - 使用流阅读器的问题

c++ - 合并两个数组中的唯一元素