在 PHP 中显示特定的 XML 节点

Posted

技术标签:

【中文标题】在 PHP 中显示特定的 XML 节点【英文标题】:Displaying specific XML nodes in PHP 【发布时间】:2018-10-04 20:02:50 【问题描述】:

我正在尝试使用 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】:

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

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

【讨论】:

没有一行它只是说致命错误,还有另一个错误说“堆栈跟踪:在第 4 行的 /path/ 中抛出” 该错误可能是由于未安装 XML 模块。试试这个问题来安装 XML 模块。 ***.com/questions/31206186/…

以上是关于在 PHP 中显示特定的 XML 节点的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 XML 节点中的记录在 PHP 中编辑大型 XML 文件

仅输出特定节点 PHP XML

如何在特定节点的 XSLT 中显示属性?

如何使用 xpath/php 获取 xml 文件中的节点名称?

在 xml 文件中的特定节点之后插入一个节点

在 XML 文件中保存特定节点