Php 使用类似xpath的访问器语法将XML属性合并到数组中的方法是什么?

Php 使用类似xpath的访问器语法将XML属性合并到数组中的方法是什么?,php,hashtable,Php,Hashtable,到目前为止,我最喜欢的XML特性是属性语法,因为它可以让您执行以下操作: <order> <sku o="1234"> <warehouse o="PDX"> <qty>2</qty> </warehouse> <warehouse o="ATX"> <qty>4</qty> <

到目前为止,我最喜欢的XML特性是属性语法,因为它可以让您执行以下操作:

<order>
   <sku o="1234">
       <warehouse o="PDX">
           <qty>2</qty>
       </warehouse>
       <warehouse o="ATX">
           <qty>4</qty>
       </warehouse>
   </sku>
   <sku o="2345">
       <warehouse o="PHX">
           <qty>5</qty>
       </warehouse>
       <warehouse o="LAX">
           <qty>5</qty>
       </warehouse>
   </sku>
</order>
返回:

Array
(
    [skus] => Array
        (
        )

)
Array
(
)
Array
(
    [skus] => Array
        (
            [0] => Array
                (
                    [qty] => 2
                )

            [1234] => Array
                (
                    [qty] => 2
                )

        )

)
qty: 2

XPATH实现也将在内部使用某种形式的循环来实现这一点。而且,由于这种基于属性值的访问不是在PHP中本机实现的,因此您必须自己执行–使用循环,无论您是否喜欢。@CBroe,如果您查看我上面的“hack-ish”示例,我已经展示了如何在不使用foreach循环的情况下执行它。(我的示例只是有一个foreach循环来显示它不会返回双条目,而不是需要foreach循环来使用它。)我的意思是,PHP本身就支持这种类型的属性值访问,正如我的示例所示。但我只是想知道是否有更好/更被接受的方法来做这件事。
Array
(
    [skus] => Array
        (
        )

)
Array
(
)
Array
(
    [skus] => Array
        (
            [0] => Array
                (
                    [qty] => 2
                )

            [1234] => Array
                (
                    [qty] => 2
                )

        )

)
qty: 2