【发布时间】:2013-01-11 18:51:52
【问题描述】:
我有一个复杂的多寄存器文档 xml,我需要在 Perl 中对其进行解析以输出为不同的格式。
输入xml:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<result name="response" numFound="58582" start="0">
<doc>
<str name="body">Have a great time at this park!</str><int name="is_park_id">317851</int><str name="ss_image_thumb_small"/>
<str name="title">Playground</str>
</doc>
<doc>
<str name="body">Have a great time at this park!</str><int name="is_park_id">317851</int><str name="ss_image_thumb_small"/>
<str name="title">Playground</str>
</doc>
</result>
</response>
所需的输出格式为:
<?xml version="1.0" encoding="iso-8859-1"?>
<Feed>
<Products>
<Product>
<Description>Have a great time at this park!</Description><ExternalId>PF317851</ExternalId><ImageUrl/>
<Name>Playground</Name>
</Product>
<Product>
<Description>Have a great time at this park!</Description><ExternalId>PF317851</ExternalId><ImageUrl/>
<Name>Playground</Name>
</Product>
</Products>
</Feed>
<str name="body"> 应视为描述,<int name="is_park_id"> 应视为<ExternalId>,<str name="title"> 应视为<Name>。
您能否帮助将 XML 格式化为新格式?
【问题讨论】:
-
xsl 可能比直接 perl 更适合您。到目前为止,您尝试过什么?
-
我尝试过 XML::Simple,但无法获得所需的格式,因为我觉得 XML 有更多标签很复杂。
标签: perl xml-parsing