【问题标题】:PHP XML QuestionPHP XML 问题
【发布时间】:2012-04-27 19:24:10
【问题描述】:

我的 PHP:

$url = '../build.xml';
$xml = simplexml_load_file($url);

foreach($xml->css as $css) {
    echo (string) $css->element['id']."{";
    foreach($xml->css->element->csstag as $tag) {
        $temp = $tag->title.": ".$tag->value.";";
        echo $temp;
    }
    echo "}";
}

我的 XML:

<root>
    <css>
    <element id="body">
        <csstag><title>background-color</title><value>#FFF</value></csstag>
        <csstag><title>color</title><value>#333</value></csstag>
        <csstag><title>font-family</title><value>Verdana, Geneva, sans-serif</value></csstag>
    </element>
    <element id="#header">
        <csstag><title>background-color</title><value>#444</value></csstag>
        <csstag><title>color</title><value>#FFF</value></csstag>
        <csstag><title>border-bottom</title><value>#333 5px solid</value></csstag>
    </element>
    <element id="#footer">
        <csstag><title>background-color</title><value>#444</value></csstag>
        <csstag><title>color</title><value>#FFF</value></csstag>
        <csstag><title>border-top</title><value>#333 5px solid</value></csstag>
    </element>
    </css>
</root>

我找不到问题所在!

第一个问题是第一个 foreach 只显示第一个 &lt;element&gt; 节点,我知道这是因为我已经告诉它 foreach 每个 &lt;css&gt; 标签,但我想不出任何其他方式来回显&lt;element&gt; 节点的属性。

第二件事是第二个 foreach 没有回应!

谁能看到代码中的问题?提前谢谢!

【问题讨论】:

    标签: php xml


    【解决方案1】:

    您缺少一个 foreach 循环,您需要另一个级别

    foreach($xml->css as $css) {
        foreach($xml->css->element as $elem){ // foreach element
            echo (string) $elem['id']."{";    // id for each element
            foreach($elem->csstag as $tag) {
                $temp = $tag->title.": ".$tag->value.";";
                echo $temp;
        }
        echo "}\n"; //\n to make the css look neater
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      • 2023-03-26
      • 2012-01-12
      • 2013-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多