2016-05-27 6 views
0

Как игнорировать '&' фрахтователь при чтении XML-файла. то, что я хочу, во-первых, я прочитал XML-файл, а затем Печать содержимого в виде списка .. но в некоторых случаях мое содержание содержат некоторые специальные charecter LikeИгнорировать символ, который не поддерживается в XML

&,»,"

и т.д. .

как я могу игнорировать? это мой код для чтения XML из SDCard.

MainActivity

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

PullHendler класс

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

      XmlPullParser parser = factory.newPullParser(); 

      parser.setInput(new InputStreamReader(is)); 

ИЛИ Возможно ли это заменить символ при чтении файла .. (т.е. & заменяется & усилителем)

это Myfile.Xml файл

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

это мой 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

Почему вы хотите игнорировать их в чем проблема? и где код, который извлекает ** String ** данные из файла? –

+0

проблема заключается в том, что она дает неподдерживаемую формулу. я пытался справиться с этим, но не работал .. becoz xml-файл не поддерживается в этом формате –

+0

Показать немного вашего XML-файла, где вы получите исключение –

ответ

1

Вы можете попробовать, как это. Добавить замены для других HTML сущностей после 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)); 

Это не является эффективным, хотя, как память идет, потому что она будет загружать весь файл XML в строку. Я бы смог предложить лучшее решение, если вы продемонстрируете, что вы делаете с вашим парсером XML.

+0

Охх !! работает. Спасибо большое.. –