在PHP中显示特定的XML节点

时间:2018-04-24 14:04:01

标签: php xml

我尝试使用PHP根据变量显示.xml文件中的特定节点

我想知道是否有其他方法可以使其发挥作用或了解我的代码有什么问题。

我尝试仅显示.xml文件中的<name>

这是我的代码不起作用:

function display_xml_nodes($xmlstr, $node) {
    $xmlstr = simplexml_load_file("$xmlstr") or die("Error: name not found");
    echo $xmlstr->foods->products->product->name . "\n";
}

display_xml_nodes("ex_04.xml", "name");

这是.xml

<food>
    <foods>
        <title>Products</title>
        <products>
            <product>
                <name>Chcolate Bar</name>
                <price>1</price>
            </product>
            <product>
                <name>Milk</name>
                <price>0.50</price>
            </product>
            <product>
                <name>Water</name>
                <price>0.50</price>
            </product>
            <product>
                <name>Donut</name>
                <price>1.50</price>
            </product>
        </products>
    </foods>
</food>

1 个答案:

答案 0 :(得分:0)

我认为问题出在这条线上。

$xmlstr = simplexml_load_file("$xmlstr") or die("Error: name not found");

您已将变量名$xmlstr作为函数simplexml_load_file ()的字符串,而不是该变量中的内容(实际文件名)。

所以改变该行如下,

$xmlstr = simplexml_load_file($xmlstr) or die("Error: name not found");