Php 使用类似xpath的访问器语法将XML属性合并到数组中的方法是什么?
到目前为止,我最喜欢的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> <
<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