Android生成XML并解析成JSON格式

来源:互联网 发布:bi软件安卓版 编辑:程序博客网 时间:2024/05/26 19:17

1.生成XML格式的字符串或者保存为.xml文件

public static String writerXMLStr(String tag1, String tag2, String tag3,String tag4) {XmlSerializer serializer = Xml.newSerializer();StringWriter writer = new StringWriter();String result = null;String NAMESSPACE = "";try {serializer.setOutput(writer);//设置输出类型 字符串/* *将数据写入文件  File file = new File( Environment.getExternalStorageDirectory().getAbsolutePath()+"/test.xml");file.createNewFile();FileOutputStream fileOutputStream = new FileOutputStream(file);serializer.setOutput(fileOutputStream,"utf-8");*/serializer.startDocument("utf-8", null);// true-->显示standalone = 'yes' (默认值)// false-->显示standalone = 'no'// null-->不显示standalone//值 no 表示这个 XML 文档不是独立的而是依赖于外部所定义的一个 DTD.  值 yes 表示这个 XML 文档是自包含的(self-contained).serializer.startTag("", "ROOT");// serializer.startTag(NAMESSPACE, "PARAM");serializer.startTag(NAMESSPACE, "tag1");serializer.text(tag1);serializer.endTag(NAMESSPACE, "tag1");serializer.startTag(NAMESSPACE, "tag2");serializer.attribute(NAMESSPACE, "name", tag2);serializer.attribute(NAMESSPACE, "pwd", "123");serializer.endTag(NAMESSPACE, "tag2");serializer.startTag(NAMESSPACE, "tag3");serializer.text(tag3);serializer.endTag(NAMESSPACE, "tag3");serializer.startTag(NAMESSPACE, "ARRAY");serializer.startTag(NAMESSPACE, "tag4");serializer.text(tag4);serializer.endTag(NAMESSPACE, "tag4");serializer.startTag(NAMESSPACE, "tag4");serializer.text(tag4);serializer.endTag(NAMESSPACE, "tag4");serializer.startTag(NAMESSPACE, "tag4");serializer.text(tag4);serializer.endTag(NAMESSPACE, "tag4");serializer.endTag(NAMESSPACE, "ARRAY");// serializer.endTag(NAMESSPACE, "PARAM");serializer.endTag(NAMESSPACE, "ROOT");serializer.endDocument();result = writer.toString();serializer.flush();//将数据刷新到文件中//fileOutputStream.close();Log.d("zhu", "XML内容:" + result);} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalStateException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();Log.d("zhu", e.getMessage());}return result;}
2.通过上一个方法拿到xml格式的字符串内容并解析成json格式

生成的xml内容如下

<?xml version='1.0' encoding='utf-8' ?><ROOT><tag1>早上好</tag1><tag2 name="马克" pwd="123" /><tag3>GD-9</tag3><ARRAY><tag4>12345</tag4><tag4>12345</tag4><tag4>12345</tag4></ARRAY></ROOT>
可以看到xml标签有字符串也有数组

将xml内容使用XMLDecode解析

XMLDecode serializer = new XMLDecode();JSON xml = serializer.read(xmlString);String xml2Json = xml.toString();try {JSONObject jsonData = new JSONObject(xml2Json);((TextView) findViewById(R.id.content_json)).setText(jsonData.toString());} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}

解析出来的json内容如下

{"ARRAY":["12345","12345","12345"],"tag1":"早上好","tag2":{"@name":"马克","@pwd":"123"},"tag3":"GD-9"}

使用这个方法要导入5个jar包和1个工具类,附件上传

3.XMLDecode工具类及其jar包下载










0 0
原创粉丝点击