SimpleXml_load_file到二维数组

时间:2014-09-02 15:49:10

标签: xml simplexml

很抱歉这个问题,也许在StackOverflow中的somwhere是我的问题的答案,但有一种方法,将我的xml文件转换为二维php数组并保持xml节点属性在第二维(类似这样:$ colors ['2'] ['en']我的意思是$ colors [colorid] [lang])? P.S抱歉我的英语不好,这不是我的母语。 这是我的xml文件:

    <?xml version="1.0" encoding="UTF-8"?>
<Colors>
    <Color id="1">
        <Name lang="lv" default="true">Sudraba</Name>
        <Name lang="en">Silver</Name>
        <Name lang="ru">Серебро</Name>
    </Color>
    <Color id="2">
        <Name lang="lv" default="true">Sarkans</Name>
        <Name lang="en">Red</Name>
    </Color>
    <Color id="3">
        <Name lang="lv" default="true">Melns</Name>
    </Color>
</Colors>

1 个答案:

答案 0 :(得分:0)

这是一个有效的例子。如果你选择$ sxml-&gt; Color [0],这个方法是在xml文档中选择第一个Color元素,但是如果选择这样的$ sxml-&gt; Color [“0”],它将按元素的属性进行选择。抱歉我的英语,这不是我的母语:)。

<?php

    $sxml = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?>
    <Colors>
        <Color id="1">
            <Name lang="lv" default="true">Sudraba</Name>
            <Name lang="en">Silver</Name>
            <Name lang="ru">Серебро</Name>
        </Color>
        <Color id="2">
            <Name lang="lv" default="true">Sarkans</Name>
            <Name lang="en">Red</Name>
        </Color>
        <Color id="3">
            <Name lang="lv" default="true">Melns</Name>
        </Color>
    </Colors>');

    echo $sxml->Color["1"]->Name[0];



    ?>