首先:创建的文件会放在/data/data/cn.com.xxx(当前包名)/files下面。
<?xml version=1.0 encoding=utf-8?> <classes> <group name=一年级 num=10> <person name=小明 age=7> <chinese>语文90</chinese> <english>英语80</english> </person> </group> </classes>
可以直接用android dom 解析xml方式文章中方法去解析,注意修改一点:
// 从assets文件夹下获取文件 转换成输入流 // inStream = this.getResources().getAssets().open(fileName); // doc = docBuilder.parse(inStream); InputStream fosstream = openFileInput(fileName); doc = docBuilder.parse(fosstream);
同时,fileName取得方法:
String[] fileNames = getFilesDir().list();
String fileName = fileNames[0];
解析出来的结果是
private void createXmlFile(){ try { DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.newDocument(); //创建XML根元素 Element rootEle = doc.createElement(classes); doc.appendChild(rootEle); //创建XML二级元素 Element groupEle = doc.createElement(group); groupEle.setAttribute(name, 一年级); groupEle.setAttribute(num, 10); //创建XML person元素 Element personEle = doc.createElement(person); //personEle 的属性和属性值 personEle.setAttribute(name, 小明); personEle.setAttribute(age, 7); //创建personELe的子元素 Element chinese = doc.createElement(chinese); //创建personELe的子元素的值 chinese.appendChild(doc.createTextNode(语文90)); personEle.appendChild(chinese); Element english = doc.createElement(english); english.appendChild(doc.createTextNode(英语80)); personEle.appendChild(english); groupEle.appendChild(personEle); rootEle.appendChild(groupEle); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); DOMSource source = new DOMSource(doc); transformer.setoutputProperty(OutputKeys.ENCODING, utf-8); transformer.setoutputProperty(OutputKeys.INDENT, no); //创建文件存放在 /data/data/cn.xxx.xxx(当前包)/files FileOutputStream fos = openFileOutput(Dom.xml, Context.MODE_PRIVATE); //创建文件存放在 /data/data/cn.xxx.xxx(当前包)/cache // FileOutputStream fos = Op PrintWriter pw = new PrintWriter(fos); StreamResult result = new StreamResult(pw); transformer.transform(source, result); System.out.println(生成XML文件成功!); } catch (ParserConfigurationException e) { System.out.println(e.getMessage()); } catch (TransformerConfigurationException e) { System.out.println(e.getMessage()); } catch (TransformerException e) { System.out.println(e.getMessage()); } catch (FileNotFoundException e) { System.out.println(e.getMessage()); } }