atandroid DOM parsing xml methodThe article briefly introduces the application of DOM parsing xml. Today, based on the original article, let’s talk about the application of DOM to create XML in Android.
#First: the created file will be placed under /data/data/cn.com.xxx (current package name)/files.
Create the generated xml file as follows:
##
<?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 parsing xml methodThe method in the article is used to parse, please pay attention to modify it:
##// 从assets文件夹下获取文件 转换成输入流
// inStream = this.getResources().getAssets().open(fileName);
// doc = docBuilder.parse(inStream);
InputStream fosStream = openFileInput(fileName);
doc = docBuilder.parse(fosStream);
##String[] fileNames = getFilesDir().list();
String fileName = fileNames[0];
##The following is the code to create the xml file:
##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());
}
}
##