0

我的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 只显示第一个<element>节点,我知道那是因为我已经告诉它 foreach 每个<css>标签,但我想不出任何其他方式来回显<element>节点的属性。

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

任何人都可以在代码中看到问题吗?先感谢您!

4

1 回答 1

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
    }
}
于 2012-04-27T08:23:44.213 回答