【问题标题】:parse XML with all its attributes - Laravel orchestra Parser解析 XML 及其所有属性 - Laravel Orchestra Parser
【发布时间】:2020-10-18 01:19:26
【问题描述】:

我想解析所有的 XML 属性。

我无法从 :

访问 (NAME & TYPE)
 <productlist name="MRF">

 <product type="BAT">

有人可以帮我用其余数据解析这些属性吗?

$xml = XmlParser::load(url(myxmlfile.xml));

$xmlProduct = $xml->parse([

   'product'   => [
      'uses'=>'product[name,price,type]'
   ],

]);

我的 XML 示例

<productlist name="MRF">
     <product type="BAT">
        <name>
           <![CDATA[ mrf genius limited edition ]]>
        </name>
        <price>
           <![CDATA[ 11999 ]]>
        </price>
        <type>
           <![CDATA[ english willow ]]>
        </type>
     </product>
 </productlist>

【问题讨论】:

  • 我以前从未使用过 Orchestra for Laravel,所以我不会将其发布为答案,但我制作了一个 Laravel 包以使处理 xml 转换变得轻而易举。你可以在这里找到它:github.com/mtownsend5512/xml-to-array 你可以很容易做到:$data = xml_to_array(file_get_contents(url('myxmlfile.xml')))
  • @Mark 这个 Laravel 管弦乐队解析器工作正常,但我正在寻找的是......如何从:

标签: xml laravel orchestra


【解决方案1】:

这些是文档的链接

https://packagist.org/packages/orchestra/parser

https://github.com/orchestral/parser

这就是我为解决我的问题所做的:

use Orchestra\Parser\Xml\Facade as XmlParser;

$xml = XmlParser::load(url(myxmlfile.xml));
$xmlProduct = $xml->parse([ 

     'name' => ['uses' => '::name'],
     'Type' => ['uses' => 'product::type'],
     'price' => ['uses' => 'product.price'],
     'bat_type' => ['uses' => 'product.type'],
); 

这就是我能够解析我的 xml 的方式。

【讨论】:

  • 那是什么。如何在没有路径定义的情况下获得嵌套参数?我很难理解它是如何工作的。没有文档....
  • @Čamo 现在检查我已经编辑了这个答案,或者您可以详细说明您的问题,以便我可以更清楚地为您提供帮助。
  • 同时我找到了它。谢谢。
猜你喜欢
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多