[英]How to parse xml from NOT resource file
我的应用程序处理数据并将其保存在文件[root] /data/data/appName/files/list.xml中
我知道如何解析XML,如下所示:
XmlResourceParser parser = getResources().getXml(R.xml.list);
但是因为我有一个不在res目录中的文件,所以我需要找到另一种方法。
我知道如何以字符串形式获取文件,如下所示:
FileInputStream fIn = openFileInput("samplefile.txt");
InputStreamReader isr = new InputStreamReader(fIn);
char[] inputBuffer = new char[TESTSTRING.length()];
isr.read(inputBuffer);
String readString = new String(inputBuffer);
能够指定文件名很重要。
另外,当我使用以下命令保存文件时:
FileOutputStream fOut = openFileOutput("list1.xml", MODE_WORLD_READABLE);
编译器显示: "MODE_WORLD_READABLE"
因为
"This constant was deprecated in API level 17".
但这有效。 对我来说意味着什么?
从路径读取XML文件
public boolean ReadXmlFile(String filePath)
{
try {
String Data="";
File fIN = new File(filePath);
if (fIN.exists())
{
StringBuffer fileData = new StringBuffer(1000);
BufferedReader reader = new BufferedReader(
new FileReader(filePath));
char[] buf = new char[1024];
int numRead=0;
while((numRead=reader.read(buf)) != -1){
String readData = String.valueOf(buf, 0, numRead);
fileData.append(readData);
buf = new char[1024];
}
reader.close();
Data= fileData.toString();
}
else
{
return false;
}
docData = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(Data));
docData = db.parse(is);
} catch (ParserConfigurationException e) {
return false;
} catch (SAXException e) {
return false;
} catch (IOException e) {
return false;
}
return true;
} catch (Exception e) {
return false;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.