由于未找到结束标记,因此抛出org.xmlpull.v1.XmlPullParserException

时间:2015-01-20 11:02:05

标签: android xml exception xmlpullparser android-xmlpullparser

我的代码就像

public void parse(String input) throws XmlPullParserException, IOException {
    InputStream is = null;
    try {
        is = new ByteArrayInputStream(input.getBytes("Big-5"));
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    XmlPullParser parser = Xml.newPullParser();
    parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES,false);

    parser.setInput(is,"Big-5");
    readFeed(parser);
}
private void readFeed(XmlPullParser parser) throws XmlPullParserException, IOException {
    int eventType = parser.getEventType();
    while(eventType!=parser.END_DOCUMENT){
        String text = parser.getName();

        Log.d(TAG,"text:"+text);

        eventType=parser.nextTag();
    }
}

并且logcat中存在错误

01-20 18:41:34.361  17574-17574/global.fantasyfighter.hongkongnews W/System.err﹕ org.xmlpull.v1.XmlPullParserException: expected: /SCRIPT read: script (position:END_TAG </script>@23:10 in java.io.InputStreamReader@428c5000)

Xml的前几行:

    <meta http-equiv="refresh" content="900" />
<link rel="image_src" href="http://www.hkheadline.com/images/headline_logo_2_2_line_small.jpg">
<SCRIPT LANGUAGE="JavaScript">
<!-- somefunction omitted by author-->
</script>

从这个错误我知道这是因为XmlPullParser找到<SCRIPT> 并期望在xml中找到</SCRIPT>,但找到</script>。问题是我无法在解析过程中使XmlPullParser对标记不敏感。并且XmlPullParserException一直在我的应用程序中抛出。

1 个答案:

答案 0 :(得分:0)

这个怎么样?

if (tagname.equalsIgnoreCase("script"))
 {
   Code here...
  }

equalsIgnoreCase

将此String与另一个String进行比较,忽略大小写。如果两个字符串具有相同的长度并且两个字符串中的相应字符等于忽略大小写,则认为它们是相等的忽略大小写。