PHP数组到XML没有数字

时间:2014-02-20 00:43:14

标签: php xml

PHP数组到XML问题。我有一个数组,当尝试将其转换为xml文件时,它使用“item0”“item1”计算总字段...等等。我只希望它显示“item”“item”。以下示例。谢谢。

PHP代码将数组($ store)转换为XML文件。

// initializing or creating array
$student_info = array($store);

// creating object of SimpleXMLElement
$xml_student_info = new SimpleXMLElement("<?xml version=\"1.0\"?><student_info></student_info>");

// function call to convert array to xml
array_to_xml($student_info,$xml_student_info);

//saving generated xml file
$xml_student_info->asXML('xmltest.xml');


// function defination to convert array to xml
function array_to_xml($student_info, &$xml_student_info) {
    foreach($student_info as $key => $value) {
        if(is_array($value)) {
            if(!is_numeric($key)){
                $subnode = $xml_student_info->addChild("$key");
                array_to_xml($value, $subnode);
            }
            else{
                $subnode = $xml_student_info->addChild("item$key");
                array_to_xml($value, $subnode);
            }
        }
        else {
            $xml_student_info->addChild("$key","$value");
        }
    }
}

XML文件的外观(带有#错误项目)

<student_info>
<item0>
    <item0>
        <bus_id>2436</bus_id>
        <user1>25</user1>
        <status>2</status>
    </item0>
    <item1>
        <bus_id>2438</bus_id>
        <user1>1</user1>
        <status>2</status>
    </item1>
    <item2>
        <bus_id>2435</bus_id>
        <user1>1</user1>
        <status>2</status>
    </item2>
</item0>
</student_info>

再次,我只想让每个“项目”显示没有数字的“项目”。以及第一个也是最后一个“item0”......我不知道那是什么。谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

回答问题

替换它:

else{
    $subnode = $xml_student_info->addChild("item$key");
    array_to_xml($value, $subnode);
}

用这个:

else{
    $subnode = $xml_student_info->addChild("item");
    array_to_xml($value, $subnode);
}

回答评论

我不知道你的数组是如何构造的,但是从输出中我猜想问题出在以下几行:

$student_info = array($store);

所以,改为:

if (!is_array($store)) {
    $student_info = array($store);
} else {
    $student_info = $store;
}

这应该解决它