1. 生成XML类:
public class WriteXml { String name = "http://www.w3.org/2001/XMLSchema-instance"; String value = "http://www.w3.org/2001/XMLSchema"; private XmlSerializer serializer; private StringWriter writer; private DevicesInfo devicesInfo; private String[] MeasurementData = { "Name", "Status", "Result", "LowerLimit", "UpperLimit", "Units", "CompType", "LogCount", "LogTime" }; public WriteXml(Context context) { writer = new StringWriter(); serializer = Xml.newSerializer(); // serializer = new FastXmlSerializer(); devicesInfo = new DevicesInfo(context); Test(); } public String createXmlFile() { try { serializer.setOutput(writer); serializer.startDocument("UTF-8", true); serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); serializer.startTag(null, "TestResults"); serializer.attribute(null, "xmlns:xsi", name); serializer.attribute(null, "xmlns:xsd", value); createAllResult(); createDevicesInfo(); serializer.startTag(null, "TestDatas"); Map<String, String> map0 = mList.get(0); Map<String, String> map1 = mList.get(1); createTestDatas(map0, "SAMPLER_SETUP_STATUS", "PASS", false); createTestDatas(map1, "ENUMERATION_STATUS", "PASS", false); createTestDatas(map1, "FUNCTIONS_TEST_RESULTS", "PASS", true); serializer.endTag(null, "TestDatas"); serializer.endTag(null, "TestResults"); serializer.endDocument(); return writer.toString(); } catch (Exception e) { throw new RuntimeException(e); } } private void createAllResult() { try { serializer.startTag(null, "OverallResult"); serializer.startTag(null, "Result"); serializer.text("PASS"); serializer.endTag(null, "Result"); serializer.startTag(null, "ErrorCode"); serializer.text("NoError"); serializer.endTag(null, "ErrorCode"); serializer.startTag(null, "ErrorMessage"); serializer.endTag(null, "ErrorMessage"); serializer.startTag(null, "ErrorTestName"); serializer.endTag(null, "ErrorTestName"); serializer.startTag(null, "ErrorFullTestName"); serializer.endTag(null, "ErrorFullTestName"); serializer.startTag(null, "ErrorDetails"); serializer.endTag(null, "ErrorDetails"); serializer.endTag(null, "OverallResult"); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void createDevicesInfo() { try { serializer.startTag(null, "UnitSerialNumber"); serializer.text(devicesInfo.getSerialNumber()); serializer.endTag(null, "UnitSerialNumber"); serializer.startTag(null, "StartDate"); serializer.text(devicesInfo.getCurrentTime()); serializer.endTag(null, "StartDate"); serializer.startTag(null, "StopDate"); serializer.text(devicesInfo.getCurrentTime()); serializer.endTag(null, "StopDate"); serializer.startTag(null, "ModelName"); serializer.text(devicesInfo.getModelName()); serializer.endTag(null, "ModelName"); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void createTestDatas(Map<String, String> map, String name, String status, boolean isloop) { try { serializer.startTag(null, "TestData"); serializer.attribute(null, "Name", name); serializer.attribute(null, "Status", status); serializer.startTag(null, "Measurements"); if (isloop) { for (int i = 0; i < 9; i++) { serializer.startTag(null, "MeasurementData"); createMeasurementData(map); serializer.endTag(null, "MeasurementData"); } } else { serializer.startTag(null, "MeasurementData"); createMeasurementData(map); serializer.endTag(null, "MeasurementData"); } serializer.endTag(null, "Measurements"); serializer.endTag(null, "TestData"); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void createMeasurementData(Map<String, String> map) { try { for (int i = 0; i < 9; i++) { serializer.attribute(null, MeasurementData[i], map.get(MeasurementData[i])); } } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } ArrayList<Map<String, String>> mList = new ArrayList<Map<String, String>>(); private void Test() { for (int j = 0; j < 2; j++) { Map<String, String> map = new HashMap<String, String>(); for (int i = 0; i < 9; i++) { map.put(MeasurementData[i], devicesInfo.getData(i)); } mList.add(map); } } }
2. 获取属性类:
public class DevicesInfo { private Context context; public DevicesInfo(Context context) { this.context = context; initData(); } public String getSerialNumber() { return android.os.Build.SERIAL; } public String getModelName() { return android.os.Build.MODEL; } public String getCurrentTime() { SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.ssssss"); return sDateFormat.format(new java.util.Date()); } // String[] data = {"STATUS","PASS","NoError","NoError","NoError","None","EQ","0",""}; String[] data = new String[9]; private void initData() { for (int i = 0; i < data.length; i++) { switch (i) { case 0: data[i] = "STATUS"; break; case 1: data[i] = "PASS"; break; case 2: data[i] = "NoError"; break; case 3: data[i] = "NoError"; break; case 4: data[i] = "NoError"; break; case 5: data[i] = "None"; break; case 6: data[i] = "EQ"; break; case 7: data[i] = "0"; break; case 8: data[i] = getCurrentTime(); break; } } } public String getData(int i){ return data[i]; } }
3.写成文件:
public boolean WriteFileData(String dirPath, String str) { OutputStream out = null; try { File f = new File(dirPath); out = new FileOutputStream(f); } catch (Exception e) { return false; } OutputStreamWriter outw = new OutputStreamWriter(out); try { outw.write(str); outw.close(); out.close(); } catch (Exception e) { return false; } return true; }
相关推荐
主要介绍了Android应用中使用XmlSerializer序列化XML数据的教程,XmlSerializer序列化XML同时也是将数据写为XML格式的基本方法,需要的朋友可以参考下
使用XmlSerializer类将对象序列化为Xml格式保存用到的资源文件源代码
C# 生成xml文件,编码为utf-8方法
XmlSchemaClassGenerator一个控制台程序和库,用于从XML Schema文件生成与XmlSerializer兼容的C#类。 通过显式或通过(confi XmlSchemaClassGenerator一个控制台程序和库,将XML命名空间映射到C#名称空间。从XML ...
本文实例讲述了Android中常用的XML生成方法。分享给大家供大家参考。具体如下: 1. java代码: package com.android.antking.xml; import java.io.OutputStream; import java.util.List; import org.xmlpull.v1....
NET 框架中的 XmlSerializer 是一种很棒的工具,它将高度结构化的 XML 数据映射到 .NET ...本文研究了在使用 XmlSerializer 构建基于 XML 的解决方案时可能发生的各种错误,并且讨论了用来诊断这些错误的技巧和工具。
StringBuilder、XmlSerializer、XmlPullParser生成xml并解析xml文件
XML与JSON之间转换
Troubleshooting Common Problems with the XmlSerializer (译自 http://msdn2.microsoft.com/en-us/library/aa302290.aspx)
Android系统中和创建XML相关的包为org.xmlpull.v1,在这个包中不仅提供了用于创建XML的 XmlSerializer,还提供了用来解析XML的Pull方式解析器 XmlPullParser XmlSerializer没有像XmlPullParser那样提取XML事件,而是...
主要介绍了使用XmlSerializer序列化List对象成XML格式(list对象序列化),需要的朋友可以参考下
这是CalDAV-Sync和CardDAV-Sync for Android使用的XML序列化程序。 它的目的是要比现有的Android XmlSerializer接口更方便,但仍要轻巧高效。 该库具有基本的XML序列化功能。 目前,它不支持默认名称空间和漂亮的...
对象序列化成XML格式数据的示例代码,详细可以查看博客:http://www.cnblogs.com/plokmju/p/android_XmlSerializer.html
本篇文章是对XmlSerializer 对象的Xml序列化与反序列化的应用进行了详细的分析介绍,需要的朋友参考下
json数据解释本地文件 通过XmlSerializer生成xml文件 读取xml文件的数据城市三级联动 界面相当美观 追求滑动选择的小伙伴们可以尝试下噢(有注释)
员使用 Type 类的静态方法获取外界数据,并调用 Deserialize 反序列化 xml 数据就会 触发反序列化漏洞攻击(例如 DotNetNuke 任意代码执行漏洞 CVE-2017-9822),本 文笔者从原理和代码审计的视角做了相关脑图介绍和...
一个控制台程序和库,用于从XML Schema文件生成兼容XmlSerializer的C#类。
该Demo采用XmlSerializer对XML进行封装,序列化与反序列化以及读取指定节点的值