gpt4 book ai didi

java - 使用 SAX 解析器解析 Android XML

转载 作者:搜寻专家 更新时间:2023-11-01 09:11:52 25 4
gpt4 key购买 nike

我一直在尝试使用此处找到的 SAX 解析器解析此 ( http://app.calvaryccm.com/mobile/android/v1/devos) URL:http://android-er.blogspot.com/2010/05/simple-rss-reader-iii-show-details-once.html我一直在研究如何处理 XML 中的描述标签。我在有和没有 CDATA 标签的情况下都试过了,但似乎没有任何帮助。就好像链接被读入了描述。

第一部分工作得很好:

enter image description here

当我尝试访问内页时出现问题。就好像链接标签先于描述标签被读取一样。

enter image description here

我在让描述标签正确显示时遇到了问题。感谢您的帮助!

编辑此应用程序的完整源代码在这里:http://dl.dropbox.com/u/19136502/CCM.zip

最佳答案

哎呀,经过大约 3 个小时的挖掘和分析您的源代码,我找到了您出现上述奇怪结果的原因。

首先从你解析的链接中看RSS内容:http://app.calvaryccm.com/mobile/android/v1/devos

部分内容:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>CCM Daily Devotions</title>
<link>http://www.calvaryccm.com/resources/dailydevotions.aspx</link>
<description>Calvary Chapel Melbourne's Daily Devotionals</description>
<webMaster>webmaster@calvaryccm.com (Calvary Chapel Melbourne)</webMaster>
<copyright>(c)2011, Calvary Chapel Melbourne. All rights reserved</copyright>
<ttl>60</ttl>
<item>
<guid isPermaLink="false">b3e91cbf-bbe9-4667-bf4c-8ff831ba09f1</guid><br/>
<title>Teachable Moments</title>
<description>Based on &amp;ldquo;Role Models, Part 4&amp;rdquo; by Pastor Mark Balmer; 10/8-9/11,
Message #6078; Daily Devotional #6 - &amp;ldquo;Teachable Moments&amp;rdquo; Preparing the Soil (Introduction): My husband and I took seriously our understanding of God&amp;rsquo;s instructions to teach His commandments to our children. (Deuteronomy 6:7) We went to our local Christian bookstore and bought children&amp;rsquo;s Bibles, studies, coloring books, games&amp;mdash;anything that would help us to communicate biblical situations in their lives. Planting and Watering the Seed (Growth): Each parent needs to take seriously God&amp;rsquo;s commthe Crop (Action/Response): Life is God&amp;rsquo;s classroom for teachable moments. A long delay in traffic can be a frustrating irritation, or it can be an opportunity to teach our children that God&amp;rsquo;s than taught. Cultivating (Additional Reading): Psalm 78:1-8;&amp;nbsp;Psalm 145:4
klw Calvary Chapel of Melbourne; 2955 Minton Road; W. Melbourne, FL 32904; 321-952-9673
NLT = New Living Translation. </description> <link>http://www.calvaryccm.com/resources/dailydevotions.aspx</link> <pubDate>Sun, 16 Oct 2011 12:00:00 GMT</pubDate> </item>

密切关注这个标签/rss/channel/item/description ,你能看到的是这些东西:rsquo;'squo;&amp;ldquo;rdquo; ...这些是转义字符(左单引号、右单引号、& 符号、右双引号、左双引号……甚至换行符),它们位于 XML 内容中。

所以当XML Parser遍历这些字符,它会考虑逃避解析,这会导致您现在面临的奇怪结果。

解决方案呢?一开始,我能想到获取URL的内容首先,然后取消转义那些字符(添加 SLASH 字符),现在我认为你可以再次成功解析它。
这个解决方案似乎工作得很好,但是,我认为它可能不会,因为来自服务器的 RSS 文本内容响应的格式非常奇怪(格式不正确)。所以如果你能联系到这个网络管理员,告诉他们格式 RSS content在发布 RSS 订阅之前很好地(比如添加 SLASH 来转义字符,删除所有新行字符......)。

其他解决方案是使用一些处理转义/非转义内容的第三方,例如 StringEscapeUtils来自 Apache Commons : http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringEscapeUtils.htmlJTidy .
但我不认为这些库最适合您的情况。

这就是我能说的。

@p/s: 只是对你的源代码的一些评论,我认为你需要考虑让你的代码清晰易读,更好地维护,并适本地重新打包。

关于java - 使用 SAX 解析器解析 Android XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7731155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com