首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Laravel的orchestra解析器解压包含列表的嵌套XML

使用Laravel的orchestra解析器解压包含列表的嵌套XML
EN

Stack Overflow用户
提问于 2021-07-12 14:38:44
回答 1查看 31关注 0票数 0

我想解析包含图片列表的包的列表。但是,我能够获得第一个元素,但不能获得整个数组。我使用的解析器是Laravel's Orchestra。

要解压的XML:

代码语言:javascript
复制
<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>

我的解压代码:

代码语言:javascript
复制
$OfferSummary = $xml->parse([
        'Images' => ['uses' => 'Packages.Package.Picture[P]'],   
    ]);

我的结果是:

代码语言:javascript
复制
 ["Images"]=>
     array(1) {
        [0]=>
           array(1) {
              ["P"]=>
              string(19) "20205520574081..jpg"
          }
        ....
 }

请注意,只返回图片标记的第一个元素,并且我需要整个元素数组。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-11-09 12:32:50

我也遇到过类似的问题。我的XML有一个列表,其中每个子节点都有一个name属性。在我的例子中,我找到了答案:https://github.com/orchestral/parser/blob/master/tests/Feature/DocumentTest.php#L52

在我的案例中,解决方案是:

代码语言:javascript
复制
 $parser = $xml->parse([
            'products' => ['uses' => 'products.product[attributes.attribute_group.value(::name=@)]'],
        ]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68342886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档