如何循环SimpleXML对象?

时间:2010-08-05 10:23:27

标签: php simplexml

我下载了一个包含XML代码的网页:

$xml  = simplexml_load_file($page);

结果是:

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [Message] => Success
            [Date] => 0001-01-01T00:00:00
        )

    [FUNDAMENTALS] => SimpleXMLElement Object
        (
            [FUNDAMENTAL] => Array
                (
                    [0] => SimpleXMLElement Object
                        (
                            [@attributes] => Array
                                (
                                    [Symbol] => AAA
                                    [Name] => Description AAA

                                )

                        )

                    [1] => SimpleXMLElement Object
                        (
                            [@attributes] => Array
                                (
                                    [Symbol] => BBB
                                    [Name] => Description BBB

                                )

                        )
                )
        )
)

我必须阅读每个[符号] [姓名],我该怎么办?

2 个答案:

答案 0 :(得分:2)

类似的东西:

$xml  = simplexml_load_file($page);
foreach ($xml->FUNDAMENTALS->FUNDAMENTAL as $fundamental) {
    $symbol = $fundamental['Symbol'];
    $name = $fundamental['Name'];
}

答案 1 :(得分:0)

您还可以使用SimpleXmlIterator

  

SimpleXMLIterator在SimpleXMLElement对象的所有节点上提供递归迭代。

如果您只想迭代<FUNDAMENTAL>个元素,您可能需要考虑使用XPath来获取它们,例如:

$fundamentals = $sxe->xpath('//FUNDAMENTAL');

如果您为问题提供了一些XML,我将为您提供代码示例。