Android 无法正确获取xml中具有特殊字符的数据

Android 无法正确获取xml中具有特殊字符的数据,android,xml,parsing,android-xmlpullparser,Android,Xml,Parsing,Android Xmlpullparser,我正在创建一个应用程序,在这个应用程序中,我从服务器获取包含特殊字符的xml,当我在android端解析它时,我得到了包含特殊字符的单个字符串的不同字符串 以下是生成的xml示例: <field> <option>Didn&apos;t Apply For Card,Do Not Want the Card,No</option> <validation>NA</validation> <field_name>sel

我正在创建一个应用程序,在这个应用程序中,我从服务器获取包含特殊字符的xml,当我在android端解析它时,我得到了包含特殊字符的单个字符串的不同字符串 以下是生成的xml示例:

<field>
<option>Didn&apos;t Apply For Card,Do Not Want the Card,No</option>
<validation>NA</validation>
<field_name>self_closed</field_name>
</field>

当我解析它而不是获取“未将卡作为整个字符串应用”时,我将其获取为两个不同的字符串“未将卡应用”和“未将卡应用”

尝试使用以下代码解析xml:

   XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
   factory.setNamespaceAware(true);
   XmlPullParser  parser = factory.newPullParser();
   parser.setInput("xml input stream", null);

        int eventType = parser.getEventType();
        while (eventType != XmlPullParser.END_DOCUMENT) {
            String tagname = parser.getName();
            switch (eventType) {
            case XmlPullParser.START_TAG:
                if (tagname.equalsIgnoreCase("field")) {
                }
                break;

            case XmlPullParser.TEXT:
                text = parser.getText();
                break;

            case XmlPullParser.END_TAG:
                if (tagname.equalsIgnoreCase("field")) {

                }  else if (tagname.equalsIgnoreCase("option")) {
                     System.out.println(text);
                } 
                break;

            default:
                break;
            }
        }

    } catch (XmlPullParserException e) {e.printStackTrace();} 
    catch (IOException e) {e.printStackTrace();}
}

setInputresult,UTF-8;我想这就是将xml提供给解析器的地方。我不知道如何修复它,但如果我是你,我会做以下测试。在将结果交给解析器之前,对结果进行字符串替换。变革&apos;为了第一次测试。但解析器似乎识别出了一个“所以我要做的第二个测试是替换&apos;通过\\',查看html实体。java中有一个类,您也可以使用它。
   XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
   factory.setNamespaceAware(true);
   XmlPullParser  parser = factory.newPullParser();
   parser.setInput("xml input stream", null);

        int eventType = parser.getEventType();
        while (eventType != XmlPullParser.END_DOCUMENT) {
            String tagname = parser.getName();
            switch (eventType) {
            case XmlPullParser.START_TAG:
                if (tagname.equalsIgnoreCase("field")) {
                }
                break;

            case XmlPullParser.TEXT:
                text = parser.getText();
                break;

            case XmlPullParser.END_TAG:
                if (tagname.equalsIgnoreCase("field")) {

                }  else if (tagname.equalsIgnoreCase("option")) {
                     System.out.println(text);
                } 
                break;

            default:
                break;
            }
        }

    } catch (XmlPullParserException e) {e.printStackTrace();} 
    catch (IOException e) {e.printStackTrace();}
}