重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关 android sax创建xml文件的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
为双滦等地区用户提供了全套网页设计制作服务,及双滦网站建设行业解决方案。主营业务为成都网站设计、成都网站制作、双滦网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
具体的如何使用sax创建xml,在程序中都加了相关的注释,还是直接上代码.
package cn.com.sax; import java.io.OutputStream; import java.io.StringWriter; import javax.xml.transform.OutputKeys; import javax.xml.transform.Result; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.sax.SAXTransformerFactory; import javax.xml.transform.sax.TransformerHandler; import javax.xml.transform.stream.StreamResult; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; import android.util.Log; class SxaCreateXml { /** * SAX方式生成XML * * @param list * @return */ public String saxToXml(OutputStream output) { String xmlStr = null; try { // 用来生成XML文件 // 实现此接口的对象包含构建转换结果树所需的信息 Result resultXml = new StreamResult(output); // 用来得到XML字符串形式 // 一个字符流,可以用其回收在字符串缓冲区中的输出来构造字符串 StringWriter writerStr = new StringWriter(); // 构建转换结果树所需的信息。 Result resultStr = new StreamResult(writerStr); // 创建SAX转换工厂 SAXTransformerFactory sff = (SAXTransformerFactory) SAXTransformerFactory .newInstance(); // 转换处理器,侦听 SAX ContentHandler // 解析事件,并将它们转换为结果树 Result TransformerHandler th = sff.newTransformerHandler(); // 将源树转换为结果树 Transformer transformer = th.getTransformer(); // 设置字符编码 transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); // 是否缩进 transformer.setOutputProperty(OutputKeys.INDENT, "yes"); // 设置与用于转换的此 TransformerHandler 关联的 Result // 注:这两个th.setResult不能同时启用 th.setResult(resultXml); // th.setResult(resultStr); //创建根元素,并设置其属性为空 th.startDocument(); AttributesImpl attr = new AttributesImpl(); th.startElement("", "calsses", "calsses", attr); //创建一级子元素 ,并设置其属性 attr.clear(); attr.addAttribute("","name", "name", "", "一年级"); attr.addAttribute("","num", "num", "", "10"); th.startElement("", "", "group", attr); //创建二级子元素 ,并设置其属性 attr.clear(); attr.addAttribute("","name", "name", "", "小明"); attr.addAttribute("","age", "age", "", "7"); th.startElement("", "", "person", attr); //创建三级子元素 ,并设置其值 attr.clear(); th.startElement("", "", "chinese", attr); th.characters("语文90".toCharArray(), 0, "语文90".length()); th.endElement("", "", "chinese"); //创建三级子元素 ,并设置其值 th.startElement("", "", "english", attr); th.characters("英语80".toCharArray(), 0, "英语80".length()); th.endElement("", "", "english"); th.endElement("", "", "person"); th.endElement("", "", "group"); th.endElement("", "calsses", "calsses"); th.endDocument(); xmlStr = writerStr.getBuffer().toString(); } catch (TransformerConfigurationException e) { Log.e("TEST", ""+e.toString()); } catch (SAXException e) { Log.e("TEST", ""+e.toString()); } catch (Exception e) { Log.e("TEST", ""+e.toString()); } Log.e("TEST","生成的"+xmlStr); return xmlStr; } }
调用这个方法即可实现创建xml文件的目的。
new SxaCreateXml().saxToXml(openFileOutput("sax.xml", Context.MODE_PRIVATE));
生成的sax.xml文件还是在data/data/cn.xxx.xxx/files文件夹下。
语文90 英语80
关于“ android sax创建xml文件的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。