我想解析包含图片列表的包的列表。但是,我能够获得第一个元素,但不能获得整个数组。我使用的解析器是Laravel's Orchestra。
要解压的XML:
<Packages>
<Package>
<Pictures>
<P>20205520574081..jpg</P>
<P>20205520574701.jpg</P>
<P>20205520575172.jpg</P>
<P>20205520575483.jpg</P>
<P>20205520575955.jpg</P>
<P>20205520576426.jpg</P>
<P>20205520576897.jpg</P>
<P>20205520577368.jpg</P>
<P>20205520577989.jpg</P>
</Pictures>
</Package>
<Package>
<Pictures>
<P>20205520574081..jpg</P>
<P>20205520574701.jpg</P>
<P>20205520575172.jpg</P>
<P>20205520575483.jpg</P>
<P>20205520575955.jpg</P>
<P>20205520576426.jpg</P>
<P>20205520576897.jpg</P>
<P>20205520577368.jpg</P>
<P>20205520577989.jpg</P>
</Pictures>
</Package>我的解压代码:
$OfferSummary = $xml->parse([
'Images' => ['uses' => 'Packages.Package.Picture[P]'],
]);我的结果是:
["Images"]=>
array(1) {
[0]=>
array(1) {
["P"]=>
string(19) "20205520574081..jpg"
}
....
}请注意,只返回图片标记的第一个元素,并且我需要整个元素数组。
谢谢!
发布于 2021-11-09 12:32:50
我也遇到过类似的问题。我的XML有一个列表,其中每个子节点都有一个name属性。在我的例子中,我找到了答案:https://github.com/orchestral/parser/blob/master/tests/Feature/DocumentTest.php#L52
在我的案例中,解决方案是:
$parser = $xml->parse([
'products' => ['uses' => 'products.product[attributes.attribute_group.value(::name=@)]'],
]);https://stackoverflow.com/questions/68342886
复制相似问题