dongnuo2879 2014-02-11 23:32
浏览 50
已采纳

如何遍历SimpleXMLElement对象数组并返回节点默认值?

I am trying to get default value for each field but I just can't figure out how to loop through all the objects. Tried with converting them to a simple array with json_decode but it just not clear as to what to loop.

Here it is:

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [name] => params
        )

    [fieldset] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [name] => Cat1
                        )

                    [field] => SimpleXMLElement Object
                        (
                            [@attributes] => Array
                                (
                                    [name] => 
                                    [type] => list
                                    [default] => 1
                                )
                        )
                )

            [1] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [name] => Item2
                        )

                    [field] => Array
                        (
                            [0] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [name] => post1
                                            [type] => text
                                            [default] => 5
                                        )
                                )

                            [1] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [name] => post2
                                            [type] => text
                                            [default] => 18
                                        )
                                )

                            [2] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [name] => post3
                                            [type] => text
                                            [default] => 15
                                        )

                                    [option] => Array
                                        (
                                            [0] => Blue
                                            [1] => Green
                                        )
                                )
                        )
                )

                      [2] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [name] => Cat2
                        )

                    [field] => Array
                        (
                            [0] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [name] => post6
                                            [type] => text
                                            [default] => 3
                                        )
                                )

                            [1] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [name] => post7
                                            [type] => text
                                            [default] => 36
                                        )
                                )

                            [2] => SimpleXMLElement Object
                                (
                                    [@attributes] => Array
                                        (
                                            [name] => post7
                                            [type] => text
                                            [default] => 88
                                        )
                                )
                        )
                )
)
  • 写回答

1条回答 默认 最新

  • dongqu9917 2014-02-11 23:49
    关注

    Try this (where $xml is your root object)

    foreach($xml->fieldset as $fieldset) {
        foreach($fieldset->field as $field) echo (string)$field['default'];
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 CSS实现渐隐虚线框
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容