Simplexml_load_file()无法使其工作,因为有2个名称路径

时间:2016-10-05 14:06:21

标签: php xml object simplexml-load-string

我有一个非常复杂的XML文件(在我看来)。它包含多个名称空间(前缀),我试图将其转换为对象。

所以一开始我们使用这个功能

simplexml_load_file("file.xml");

file.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<animal:race>
    <animal:dog>
        <specification:color>Black</specification>
    </animal:dog>
    <animal:cat>
        <animal:name>Flappie</animal:name>
    </animal:cat>
</animal:race>

首先,该函数返回一个空对象。 然后我们发现你必须指定这样的前缀:

   simplexml_load_file("file.xml",null,null,"animal");

这返回了一个对象,但没有所有其他前缀,如:specification。 所以对象变成:(作为数组输出

object(animal:race)#1 (2) { 
    ["dog"]=> object(SimpleXMLElement)#2 (0) { 
    }
    ["cat"]=> object(SimpleXMLElement)#2 (1) { 
        [animal:name] => string "flappie"
    }
}

所以我的结论是,我们需要将“其他名称空间”“包含”到......导致规范未显示。

0 个答案:

没有答案