2016-05-27 5 views
0

Wie Sie '&' Charterer beim Lesen der XML-Datei ignorieren. , was ich will, ist, Zuerst habe ich XML-Datei lesen und dann drucken Inhalt zur Listenansicht .. aber in einigen Fällen meinen Inhalt einige spezielle charecter WieIgnorieren Sie das Zeichen, das nicht unterstützt in XML

&‘,"

usw. enthalten

.

wie kann ich ignorieren? dies ist mein Code für Lese xml aus sdcard.

MainActivity

XmlPullHandler parser = new XmlPullHandler(); 
      File file = new File(Environment.getExternalStorageDirectory()+ "/myfile.xml"); 
      FileInputStream fis = new FileInputStream(file); 

PullHendler Klasse

XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
      factory.setNamespaceAware(true); 

      XmlPullParser parser = factory.newPullParser(); 

      parser.setInput(new InputStreamReader(is)); 

ODER Ist das Mögliche Zeichen zu ersetzen, während Datei zu lesen .. (d & wird durch & amp ersetzt) ​​

dies myfile.xml Datei

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<MyLine> 
<Line>Live your life sharing the Beauty & Happiness, that you have today. 
</Line> 
</MyLine> 

das ist mein pullHandlerclass

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

           line = new Lines(); 
          } 
          break; 

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

         case XmlPullParser.END_TAG: 
          if (tagname.equalsIgnoreCase("Line")) { 
           lines.add(line); 
           lines.setLine(text); 
          } 
          break; 

         default: 
          break; 
        } 
        eventType = parser.next(); 
       } 

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

      return lines; 
     } 
+0

Warum möchten Sie sie ignorieren, was ist das Problem? und wo der Code, der ** String ** Daten aus Datei holt ?? –

+0

das Problem ist, gibt es nicht unterstützte formatexeption. Ich habe versucht, damit umzugehen, aber nicht funktioniert .. Becoz XML-Datei nicht unterstützt dieses Format –

+0

Zeigen Sie ein bisschen von Ihrer XML-Datei, wo Sie die Ausnahme erhalten –

Antwort

1

Sie können wie folgt versuchen. In Ersatz für andere HTML-Entitäten nach line = line.replaceAll("&", "&amp;")

String fileData = ""; 
String line = ""; 

BufferedReader br=new BufferedReader(new InputStreamReader(is)); 

while((line = br.readLine()) != null) 
{ 
    line = line.replace("&", "&amp;"); 
    fileData += line; 
    fileData += "\n"; 
} 

parser.setInput(new StringReader(fileData)); 

Dies allerdings nicht effizient ist als Speicher geht, weil sie die gesamte XML-Datei in einen String geladen werden. Ich wäre in der Lage, eine bessere Lösung zu bieten, wenn Sie zeigen, was Sie mit Ihrem XML-Parser machen.

+0

Ohhh !! es funktioniert. ich danke dir sehr.. –

Verwandte Themen