Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP XML问题_Php_Xml - Fatal编程技术网

PHP XML问题

PHP XML问题,php,xml,Php,Xml,我的PHP: 我的XML: $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-

我的PHP:

我的XML:

$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 "}";
}

背景色#FFF
颜色#333
字体familyVerdana,日内瓦,无衬线
背景色#444
颜色#FFF
边框底部#333 5px实心
背景色#444
颜色#FFF
边框顶部#333 5px实心
我找不到哪里不对劲

第一个问题是,第一个foreach只显示第一个
节点,我知道这是因为我告诉它foreach每个
标记,但我想不出任何其他方法来响应
节点的属性

第二件事是第二个foreach没有回音


有人能看到代码中的问题吗?提前谢谢你

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

<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($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
    }
}