PHP的SimpleXML忽略了XML(有点)

时间:2011-08-25 16:59:57

标签: php xml simplexml

我有一个非常简短(迄今为止)非常基本的XML文件,名为config.xml,如

<?xml version='1.0' encoding='UTF-8' ?>
<name_of_program3>
    <path_to_exe3>script.pl</path_to_exe3>
    <path_to_perl>/usr/bin/perl</path_to_perl>
    <temp_output_file>temp.txt</temp_output_file>
</name_of_program3>

我试图用以下PHP阅读它:

$config = simplexml_load_file('config.xml');

$exe = $config->name_of_program3->path_to_exe3;
$perl_exec = $config->name_of_program3->path_to_perl;
$temp_file = $config->name_of_program3->temp_output_file;

没有读取任何XML元素; $exe$perl_exec$temp_file都是空的,但使用$config打印$config->asXML()会显示XML实际上已存在。

请告诉我,我正在做一些愚蠢的事情,以便我可以不停地撞到我的桌子上。 :)

2 个答案:

答案 0 :(得分:2)

不应使用根节点(所有xml文档都必须具有根节点,因此假定/需要它存在),请尝试:

$config->path_to_perl

代替。

答案 1 :(得分:0)

你应该在没有name_of_program3的情况下阅读,因为一个是root。 尝试使用

$ exe = $ config-&gt; path_to_exe3