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; }
相关推荐
在 C# 中,生成 XML 文件可以使用 XmlSerializer 类,该类提供了 serialize 方法,可以将对象转换为 XML 字符串。为了将生成的 XML 文件编码为 UTF-8,需要使用 MemoryStream 和 StreamWriter 类。 首先,需要创建...
主要介绍了Android应用中使用XmlSerializer序列化XML数据的教程,XmlSerializer序列化XML同时也是将数据写为XML格式的基本方法,需要的朋友可以参考下
使用XmlSerializer类将对象序列化为Xml格式保存用到的资源文件源代码
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 的解决方案时可能发生的各种错误,并且讨论了用来诊断这些错误的技巧和工具。
该方法首先使用XMLSerializer将xml字符串转换为XML对象,然后使用JSONSerializer将XML对象转换为JSON对象。 map和json之间的转换 map和json之间的转换也可以通过使用json-lib库来实现。例如,mapToJson方法将Map...
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事件,而是...
主要实现读取xml文件内容然后转换成List对象,两种实现方法。
主要介绍了使用XmlSerializer序列化List对象成XML格式(list对象序列化),需要的朋友可以参考下
这是CalDAV-Sync和CardDAV-Sync for Android使用的XML序列化程序。 它的目的是要比现有的Android XmlSerializer接口更方便,但仍要轻巧高效。 该库具有基本的XML序列化功能。 目前,它不支持默认名称空间和漂亮的...
例如,在 Android 应用程序中,使用 XML 文件来描述用户界面布局。在 Java Web 开发中,使用 XML 文件来描述配置文件。 XML 文件是一种功能强大且灵活的数据存储格式,广泛应用于数据交换、配置文件、文档描述等...
XmlSerializer serializer= Xml.newSerializer(); serializer.setOutput(fos,”utf-8″); //开始文档(字符集,文档是否独立) serializer.startDocument(“utf-8”,true); //开始一个标签(参数:命名空间,标签名...
对象序列化成XML格式数据的示例代码,详细可以查看博客:http://www.cnblogs.com/plokmju/p/android_XmlSerializer.html
本篇文章是对XmlSerializer 对象的Xml序列化与反序列化的应用进行了详细的分析介绍,需要的朋友参考下