【问题标题】:Simplexml_load_string() does not load indexesSimplexml_load_string() 不加载索引
【发布时间】:2014-04-17 07:10:41
【问题描述】:

我正在读取一个包含以下内容的 XML 文件:

<column name="title">
<![CDATA[
Sets inktcartridges geschikt voor Brother, Canon, Epson of HP printers (vanaf € 19,95)
]]>
</column>
<column name="description">
<![CDATA[
Niets zo storend als een printer zonder inkt als je net je 300 pagina’s tellende scriptie moet inleveren. Voorkom dit soort narigheden met cartridges voor verschillende printers in zwart en in kleur.
]]>
</column>

当我使用 simplexml_load_string 解析数据时,每个项目都会得到一个空索引:

$xml = simplexml_load_string($data,'SimpleXMLElement',LIBXML_NOCDATA);  

输出:

[1] => Sets inktcartridges geschikt voor Brother, Canon, Epson of HP printers (vanaf € 19,95)
        [2] => Niets zo storend als een printer zonder inkt als je net je 300 pagina’s tellende scriptie moet inleveren. Voorkom dit soort narigheden met cartridges voor verschillende printers in zwart en in kleur.

如何告诉 simplexml_load_string 列中的名称项需要是索引?

【问题讨论】:

    标签: php xml simplexml


    【解决方案1】:

    我认为你不能一次性做到这一点.. 你可以这样做..

    <?php
    $string = <<<XML
    <?xml version='1.0'?>
    <cols>
    <column name="title">
    <![CDATA[
    Sets inktcartridges geschikt voor Brother, Canon, Epson of HP printers (vanaf € 19,95)
    ]]>
    </column>
    <column name="description">
    <![CDATA[
    Niets zo storend als een printer zonder inkt als je net je 300 pagina’s tellende scriptie moet inleveren. Voorkom dit soort narigheden met cartridges voor verschillende printers in zwart en in kleur.
    ]]>
    </column>
    </cols>
    XML;
    echo "<pre>";
    $xml = simplexml_load_string($string,'SimpleXMLElement',LIBXML_NOCDATA);
    $new_arr = array();
    for($i=0;$i<count($xml->column);$i++)
    {
        $new_arr[(string)$xml->column[$i]->attributes()[0]]=trim(strip_tags($xml->column[$i]->saveXML()));
    }
    print_r($new_arr);
    

    OUTPUT :

    Array
    (
        [title] => Sets inktcartridges geschikt voor Brother, Canon, Epson of HP printers (vanaf € 19,95)
        [description] => Niets zo storend als een printer zonder inkt als je net je 300 pagina’s tellende scriptie moet inleveren. Voorkom dit soort narigheden met cartridges voor verschillende printers in zwart en in kleur.
    )
    

    Working Demo

    【讨论】:

    • 查看页面来源,数据将以:"
    • 您以纯文本形式提供的输出是我所需要的。列的名称需要是索引,列的内容是值。那是没有列本身的 XML。
    猜你喜欢
    • 2018-04-10
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    相关资源
    最近更新 更多