android - 如何修复 android 中的 windows-1256 xml 解析错误?

标签 android xml-encoding

在 android 中使用 sax 解析器解析 xml 文档时出现错误。有人可以帮我解决这个错误吗? 错误看起来像这样:

org.apache.harmony.xml.ExpatParser$ParseException: At line 5, column 9: not well-formed (invalid token)

xml文档编码为windows-1256。这是来自 xml 代码的示例:

<?xml version="1.0" encoding="windows-1256"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>منتديات عالم المرأة</title>
        <link>http://forum.mn66.com/</link>
        <description>مكياج,فساتين سهرة,ازياء,ملابس,العناية,بالبشرة,بالشعر,بالجسم,وظائف,تسريحات,fashion</description>
        <language>ar</language>
        <lastBuildDate>Wed, 23 Nov 2011 08:38:36 GMT</lastBuildDate>
        <generator>vBulletin</generator>
        <ttl>60</ttl>
        <image>
            <url>http://forum.mn66.com/images/Ops_fayez/misc/rss.jpg</url>
            <title>منتديات عالم المرأة</title>
            <link>http://forum.mn66.com/</link>
        </image>
        <item>
            <title>ودها تتعلم تسوق</title>
            <link>http://forum.mn66.com/t312645.html</link>
            <pubDate>Wed, 23 Nov 2011 08:31:20 GMT</pubDate>
            <description><![CDATA[‏&#8203;‏&#8203;قالت لـ زوجھا : [ علمني قيادھ السيارھ &#58974; ] !&#8233;فقال لہـا : انتـي گالملگھ . .  &#8233;والملكھ لا تقود يا حبيبتـي&#8233;فقالت لھ : حسنــاً ..&#8233;لن &#1649;قود .. لن أغسـل .. لن أطبـخ !&#8233;لن أربـي الأطفـال !&#8233;لأننـي ” ملگھ “ والملگھ لا تقوم بہذھ المہام &#8233;اضافھ الى اني احتـاج عشرات الخادمـات&#8233;حتى اتفرغ للاهتمام بـ جمالي ;;)...]]></description>
            <content:encoded><![CDATA[<div><div style="margin:auto;text-align:center;"></div><br /><div style="margin:auto;text-align:center;">ودها تتعلم تسوق<br /><br /></div><!-- google_ad_section_start -->‏&#8203;‏&#8203;قالت لـ زوجھا : [ علمني قيادھ السيارھ &#58974; ] !&#8233;فقال لہـا : انتـي گالملگھ . .  &#8233;والملكھ لا تقود يا حبيبتـي&#8233;فقالت لھ : حسنــاً ..&#8233;لن &#1649;قود .. لن أغسـل .. لن أطبـخ !&#8233;لن أربـي الأطفـال !&#8233;لأننـي ” ملگھ “ والملگھ لا تقوم بہذھ المہام &#8233;اضافھ الى اني احتـاج عشرات الخادمـات&#8233;حتى اتفرغ للاهتمام بـ جمالي ;;) &#8233;فقـال لہـا : أمزح معك فديتك =D:s&#8203;&#8203;&#8233;اضغطي الكلتش وعشقي بواحد وارفعي رجلك شوي شوي . . &#8233;&#8233;&#8233;ههههههههههههههههههههههههههههههههههههههههه<!-- google_ad_section_end --></div>



]]></content:encoded>
            <category domain="http://forum.mn66.com/f16/">نكت - jokes - ضحك و الصرقعه</category>
            <dc:creator>*ام ماهر*</dc:creator>
            <guid isPermaLink="true">http://forum.mn66.com/t312645.html</guid>
        </item>

过去两天我一直在网上寻找答案。任何帮助将不胜感激。

日志:

11-29 12:48:32.649: E/AndroidRuntime(26821): FATAL EXCEPTION: main 11-29 12:48:32.649: E/AndroidRuntime(26821): java.lang.NullPointerException 11-29 12:48:32.649: E/AndroidRuntime(26821): at com.lascivio.womenworld.RSSSection$EfficientAdapter.getCount(RSSSection.java:161) 11-29 12:48:32.649: E/AndroidRuntime(26821): at android.widget.ListView.setAdapter(ListView.java:502) 11-29 12:48:32.649: E/AndroidRuntime(26821): at com.lascivio.womenworld.RSSSection$GetData.onPostExecute(RSSSection.java:90) 11-29 12:48:32.649: E/AndroidRuntime(26821): at com.lascivio.womenworld.RSSSection$GetData.onPostExecute(RSSSection.java:1) 11-29 12:48:32.649: E/AndroidRuntime(26821): at android.os.AsyncTask.finish(AsyncTask.java:417) 11-29 12:48:32.649: E/AndroidRuntime(26821): at android.os.AsyncTask.access$300(AsyncTask.java:127) 11-29 12:48:32.649: E/AndroidRuntime(26821): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 11-29 12:48:32.649: E/AndroidRuntime(26821): at android.os.Handler.dispatchMessage(Handler.java:99) 11-29 12:48:32.649: E/AndroidRuntime(26821): at android.os.Looper.loop(Looper.java:123) 11-29 12:48:32.649: E/AndroidRuntime(26821): at android.app.ActivityThread.main(ActivityThread.java:3687) 11-29 12:48:32.649: E/AndroidRuntime(26821): at java.lang.reflect.Method.invokeNative(Native Method) 11-29 12:48:32.649: E/AndroidRuntime(26821): at java.lang.reflect.Method.invoke(Method.java:507) 11-29 12:48:32.649: E/AndroidRuntime(26821): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 11-29 12:48:32.649: E/AndroidRuntime(26821): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 11-29 12:48:32.649: E/AndroidRuntime(26821): at dalvik.system.NativeStart.main(Native Method)

这是进行解析的代码。

private RSSFeed getFeed(String urlToRssFeed)
{
    try
    {
        // setup the url
        URL url = new URL(urlToRssFeed);

        // create the factory
        SAXParserFactory factory = SAXParserFactory.newInstance();
        // create a parser
        SAXParser parser = factory.newSAXParser();

        // create the reader (scanner)
        XMLReader xmlreader = parser.getXMLReader();
        // instantiate our handler
        RSSHandler theRssHandler = new RSSHandler();
        // assign our handler
        xmlreader.setContentHandler(theRssHandler);
        // get our data via the url class
        InputSource is = new InputSource(url.openStream());




        // perform the synchronous parse           
        xmlreader.parse(is);


        // get the results - should be a fully populated RSSFeed instance, or null on error
        return theRssHandler.getFeed();
    }
    catch (Exception ee)
    {
        // if we have a problem, simply return null
        return null;
    }
}

最佳答案

试试这个:

Reader r = new InputStreamReader(url.openStream(), "windows-1256");
InputSource is = new InputSource(r);
xmlreader.parse(is);

关于android - 如何修复 android 中的 windows-1256 xml 解析错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8309378/

相关文章:

java - Android,可检查菜单项

android - 处理存储在库中的共享首选项

asp.net-mvc-4 - Web Api XML,如何设置编码,版本,xmlns :xsi and xsi:schemaLocation

xml - 使用 golang 编码/xml 解码 GML 时出错

.net - 当列名包含空格时,为什么我的 DataTable 不能正确序列化?

maven - 编码器类 (org.owasp.esapi.reference.DefaultEncoder) CTOR 抛出异常

java - 对于空的 EditText,getText() 返回什么?

android - android中这个控件的名称是什么以及如何实现它?

android - 从守护程序 : '...' is a result of a type we don't have a strategy to handle 收到无效响应