【问题标题】:Retrofit 2 How to parse XML without a root elementRetrofit 2 如何在没有根元素的情况下解析 XML
【发布时间】:2016-11-13 16:03:12
【问题描述】:

这是我要解析的响应:

<paste>
<paste_key>UW369pYh</paste_key>
<paste_date>1478837545</paste_date>
<paste_title>10/11/2016 - KTOS</paste_title>
<paste_size>16201</paste_size>
<paste_expire_date>0</paste_expire_date>
<paste_private>0</paste_private>
<paste_format_short>text</paste_format_short>
<paste_format_long>None</paste_format_long>
<paste_url>http://pastebin.com/UW369pYh</paste_url>
<paste_hits>5869</paste_hits>
</paste>
<paste>
<paste_key>NqQTQeYj</paste_key>
<paste_date>1478968384</paste_date>
<paste_title>Buffs/Nerfs de las megas en S&amp;M</paste_title>
<paste_size>2232</paste_size>
<paste_expire_date>0</paste_expire_date>
<paste_private>0</paste_private>
<paste_format_short>text</paste_format_short>
<paste_format_long>None</paste_format_long>
<paste_url>http://pastebin.com/NqQTQeYj</paste_url>
<paste_hits>589</paste_hits>
</paste>
<paste>
<paste_key>xnrqJF59</paste_key>
<paste_date>1478849206</paste_date>
<paste_title>Lista_Mario_PT.m3u</paste_title>
<paste_size>6079</paste_size>
<paste_expire_date>0</paste_expire_date>
<paste_private>0</paste_private>
<paste_format_short>cpp</paste_format_short>
<paste_format_long>C++</paste_format_long>
<paste_url>http://pastebin.com/xnrqJF59</paste_url>
<paste_hits>1928</paste_hits>
</paste>
<paste>
<paste_key>RHrCmtpG</paste_key>
<paste_date>1478717113</paste_date>
<paste_title>Rigged US Elections 2016</paste_title>
<paste_size>1341</paste_size>
<paste_expire_date>0</paste_expire_date>
<paste_private>0</paste_private>
<paste_format_short>text</paste_format_short>
<paste_format_long>None</paste_format_long>
<paste_url>http://pastebin.com/RHrCmtpG</paste_url>
<paste_hits>8463</paste_hits>
</paste>

如您所见,没有根元素,只有粘贴元素的列表。现在我使用的响应类型为粘贴,只能解析响应的第一个元素。

如何将整个响应解析为 List&lt;Paste&gt; 对象?

【问题讨论】:

  • 您修复了服务器以返回有效的 XML。
  • 我不拥有服务器。有没有办法解析这个?
  • “我不拥有服务器”——然后与服务器所有者交谈并要求他们返回有效的 XML。 “有没有办法解析这个?” -- 将损坏的 XML 包装在您自己的根元素中(例如,&lt;pastes&gt;...&lt;/pastes&gt;),然后对其进行解析。
  • 您可以在开头附加一个虚拟根标签并在字符串末尾关闭它然后解析它。

标签: java android xml-parsing retrofit2 simple-xml-converter


【解决方案1】:

您可以尝试使用自定义解析器来解析响应。这是一种样板解决方案。您需要编写一个通用且不可重用的代码。查看另一个 answer 以了解有关 Retrofit2 的自定义解析器的更多详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 2023-03-27
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    相关资源
    最近更新 更多