在PHP中处理XML

时间:2011-05-11 14:32:46

标签: php xml arrays

我目前正在开展一个让我使用XML的项目。我必须采取XML响应并解密每个文本节点,然后使用数据执行各种任务。我遇到的问题是采取响应并处理每个文本节点。最初我使用的是XMLToArray库,并且工作正常,我会将XML更改为数组,然后遍历数组并解密值。但是我正在处理的一些XML响应有重复的标记,而XMLToArray库只返回最后的值。

有没有一种好方法可以获取XML响应并处理所有文本节点,并轻松将值放入与响应具有相似结构的数组中?

提前致谢。

4 个答案:

答案 0 :(得分:4)

我会使用SimpleXML

这是一个使用它的小例子。它从http://www.w3schools.com/xml/plant_catalog.xml加载并解析XML,然后输出每个“PLANT”标记的“COMMON”和“PRICE”标记的值。

$xml = simplexml_load_file('http://www.w3schools.com/xml/plant_catalog.xml');
foreach ( $xml->PLANT as $plantNode ) {
    echo $plantNode->COMMON, ' - ', $plantNode->PRICE, "\n";
}

如果您在根据需要进行调整时遇到任何问题,请举例说明您的XML,以便我们为您提供帮助。

答案 1 :(得分:1)

所有那些 XML to array 库仍然是PHP 4迫使您几乎从头开始编写自己的XML解析器的时代。在最近的PHP版本中,您有一组很好的XML库来完成这项艰苦的工作。我特别推荐SimpleXML(对于小文件)和XMLReader(对于大文件)。如果您仍然发现它们很复杂,可以尝试phpQuery

答案 2 :(得分:0)

您可能想尝试SimpleXML。此外,它默认在PHP中,所以你不需要安装

答案 3 :(得分:0)

查看SimpleXML,它可能会为您所寻找的内容提供更多信息。