【问题标题】:Java Xml Parser In AndroidAndroid中的Java Xml解析器
【发布时间】:2013-03-05 11:35:21
【问题描述】:

我收到 XML 格式的响应

<item>
<title>
<![CDATA[
28. Februar 2013, FY/Q4 2012 Investoren-Telefonkonferenz
]]>
</title>
<author>
<![CDATA[ BAYER AG - Investorveranstaltungen ]]>
</author>
<pubDate>Thu, 28 Feb 2013 12:00:00 +0100</pubDate>
<description>
<![CDATA[
Rede von Dr. Marijn Dekkers, Vorsitzender des Vorstands der Bayer AG, Investoren-Telefonkonferenz zu den Ergebnissen des Geschaeftsjahres und des 4. Quartals 2012. (Auf...
]]>
</description>
<link>
http://www.webvideo.bayer.com/downloads/9208/9212/12312/file.mp3
</link>
<content:encoded>
<![CDATA[
<p>Rede von Dr. Marijn Dekkers, Vorsitzender des Vorstands der Bayer AG, Investoren-Telefonkonferenz zu den Ergebnissen des Geschaeftsjahres und des 4. Quartals 2012. (Auf Englisch)</p>
]]>
</content:encoded>
<category>ISIN_DE000BAY0017</category>
<category>ISIN_DE000BAY0017</category>
<category>podcast</category>
</item>
<item>
<title>
<![CDATA[
2013-01-30 - Analyst &amp; Investor Conference - Welcome Marc Spieker, Head of Investor Relations
]]>
</title>
<author>
<![CDATA[ E.ON Podcast ]]>
</author>
<pubDate>Wed, 30 Jan 2013 15:00:00 +0100</pubDate>
<description>
<![CDATA[ Analyst &amp; Investor... ]]>
</description>
<link>
http://www.thomson-webcast.net/de/portals/download.mp3?portal_id=315d3fce100b408b41a2c66bb982a367&presentation_id=d43466300a1a8ced8324011b593fb05a&video_id=24ae8f409449411695c0729760646bf7
</link>
<content:encoded>
<![CDATA[ <p>Analyst & Investor Conference</p> ]]>
</content:encoded>
<category>ISIN_DE000ENAG999</category>
<category>ISIN_DE000ENAG999</category>
<category>podcast</category>
</item>

我编写了一个解析器来从响应中检索数据。

但问题是。当我在 2.1 设备中测试它时,它的工作原理如下,我用 Android 2.2 测试,android 2.2.1 它工作正常。谁能告诉我是什么问题

    <link>
      http://www.webvideo.bayer.com/downloads/9208/9212/12312/file.mp3
   </link>

我能够正确检索链接 但是在另一种情况下,我失败了

    <link>
     http://www.thomson-webcast.net/de/portals/download.mp3?portal_id=315d3fce100b408b41a2c66bb982a367&presentation_id=d43466300a1a8ced8324011b593fb05a&video_id=24ae8f409449411695c0729760646bf7
    </link>

当我解析结果是

 http://www.thomson-webcast.net/de/portals/download.mp3?portal_id=315d3fce100b408b41a2c66bb982a367

&amp; 之后的数据丢失。我只在 android 2.1 中看到过这个。有人可以建议我有什么问题吗?

【问题讨论】:

    标签: java android xml xml-parsing


    【解决方案1】:

    可能链接文本也应该在CDATA 部分中,或者将&amp;amp; 标记转换为&amp;amp;

    &amp;presentation_id... 被视为(未解析的)XML 实体。

    解决方案 1(使用CDATA):

    <link>
        <![CDATA[http://www.thomson-webcast.net/de/portals/download.mp3?portal_id=315d3fce100b408b41a2c66bb982a367&presentation_id=d43466300a1a8ced8324011b593fb05a&video_id=24ae8f409449411695c0729760646bf7]]>
    </link>
    

    &amp;amp; 的解决方案 2:

    <link>
        http://www.thomson-webcast.net/de/portals/download.mp3?portal_id=315d3fce100b408b41a2c66bb982a367&amp;presentation_id=d43466300a1a8ced8324011b593fb05a&amp;video_id=24ae8f409449411695c0729760646bf7
    </link>
    

    【讨论】:

    • 尝试更改服务器输出。我在答案中放了例子。
    • 但是我的解析器在其他 android 版本中可以正常工作。 Android 2.1 的唯一问题
    • 您可以尝试不同的解析器,它们之间可能存在差异。实际上,2.1 解析器是正确的:它不是有效的 XML。似乎后来解析器被扩展为更 lean,这就是为什么这个例子适用于 2.2+ 版本。所以,正确的做法是改变服务器输出。
    猜你喜欢
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    相关资源
    最近更新 更多