【Android】创建、读取XML文件
创建:
package webdomain; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.StringWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xmlpull.v1.XmlPullParserFactory; import org.xmlpull.v1.XmlSerializer; import form.FrmLogin; import form.FrmShintai; import android.os.Environment; import android.util.Log; import android.util.Xml; import android.widget.ArrayAdapter; public class Java2XML { public static void XmlFileCreator(String abc){ File newxmlfile = new File(FrmLogin.SDCARD_PATH+"***"); try{ if(!newxmlfile.exists()) newxmlfile.createNewFile(); }catch(IOException e){ Log.e("IOException", "exception in createNewFile() method"); } //bind the new file with a FileOutputStream FileOutputStream fileos = null; try{ fileos = new FileOutputStream(newxmlfile); }catch(FileNotFoundException e){ Log.e("FileNotFoundException", "can‘t create FileOutputStream"); } // create a XmlSerializer in order to write xml data XmlSerializer serializer = Xml.newSerializer(); try { //we set the FileOutputStream as output for the serializer, using UTF-8 encoding serializer.setOutput(fileos, "UTF-8"); //Write <?xml declaration with encoding (if encoding not null) and standalone flag (if standalone not null) serializer.startDocument(null, null); //set indentation option serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); serializer.startTag(null, "jokes"); serializer.startTag(null, "tag"); serializer.startTag(null, "123"); serializer.text(FrmS.G_Itmho.getText().toString()); serializer.endTag(null, "123"); serializer.startTag(null, "456"); serializer.text(FrmS.G_Itmu.getText().toString()); serializer.endTag(null, "456"); serializer.startTag(null, "789"); serializer.text(FrmSai.G_Itm.getText().toString()); serializer.endTag(null, "789"); serializer.endTag(null, "tag"); serializer.endTag(null, "jokes"); serializer.endDocument(); serializer.flush(); fileos.close(); } catch (Exception e) { Log.e("Exception","error occurred while creating xml file"); } } }
读取:
package xmldomain; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.kobjects.util.Strings; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import android.R.string; import form.FrmLogin; import form.FrmShintai; public class ReadXML { public static void ReadXMLs() { File newxmlfile = new File(FrmLogin.SDCARD_PATH+"filepath"); FileInputStream fileos = null; try { fileos = new FileInputStream(newxmlfile); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } DocumentBuilderFactory docBuilderFactory = null; DocumentBuilder docBuilder = null; Document doc = null; try{ docBuilderFactory =DocumentBuilderFactory.newInstance(); docBuilder =docBuilderFactory.newDocumentBuilder(); //xml file doc = docBuilder.parse(fileos); //root element Element root = doc.getDocumentElement(); //Do something here //Get a NodeList by tagname NodeList shenchang = root.getElementsByTagName_r("123"); Node nd = shenchang.item(0); FrmShintai.G_ItmZenkaiShincho.setText(nd.getTextContent()); //Read Node NodeList tizhong = root.getElementsByTagName_r("456"); Node nd1 = tizhong.item(0); FrmShintai.G_ItmZenkaiTaiju.setText(nd1.getTextContent()); //Read Node NodeList bmi = root.getElementsByTagName_r("789"); Node nd2 = bmi.item(0); FrmShintai.G_ItemZenkaiBMI.setText(nd2.getTextContent()); //Read Node2 }catch(IOException e){ }catch(SAXException e){ }catch(ParserConfigurationException e){ }finally{ doc =null; docBuilder=null; docBuilderFactory=null; } } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。