将String或InputStreamReader转换为InputSource

时间:2010-10-10 11:12:42

标签: android xml

我刚刚阅读了一些教程,以便从网络解析xml Feed并将其转换为Listview:

URL file = new URL("http://..../file.xml"); 
SAXParserFactory fabrique = SAXParserFactory.newInstance();
SAXParser parseur = fabrique.newSAXParser();
XMLReader xr = parseur.getXMLReader(); 
ReglageParseur gestionnaire = new ReglageParseur();
xr.setContentHandler(gestionnaire);
xr.parse(new InputSource(file.openStream()));

一切都很好,我能够解析xml。

我的第二步是将Web上的xml文件存储到手机上的xml文件中,并在用户提出时将其更新。 (事实上​​,这个xml文件不应该每6个月更改一次,所以我不想每次都下载它。)

所以,我所做的就是将文件存储在手机上并根据用户需求进行更新。

我可以通过以下方式阅读:

fIn = openFileInput("fichier.xml");
InputStreamReader isr = new InputStreamReader(fIn);
char[] inputBuffer = new char[255];
isr.read(inputBuffer);
String readString = new String(inputBuffer);

所以,现在,一切似乎都很好,我快乐。

现在问题在于我想在手机上解析新文件:

xr.parse(InputSource);

我需要一个InputSource作为参数。

所以我的问题是:

如何将手机中的文件转换为InputSource? 我成功拥有一个InputStreamReader或String,但想将其转换为InputSource。

非常感谢任何宝贵的帮助

2 个答案:

答案 0 :(得分:6)

好吧,我不知道Android版本上有哪些构造函数可用,但J2SE InputSource class有一个带Reader参数的构造函数。你试过了吗?

或者,为什么不直接从InputStream构造一个InputSource?我认为fInFileInputStream?为什么不打电话:

InputSource input = new InputSource(fIn);

答案 1 :(得分:6)

将字符串转换为InputSource的最佳线路是:

String myStringObject = "Hello this is string object to convert in InputSource";
InputSource inSource =  new InputSource(new StringReader(myStringObject));