xml 格式化输出

问题描述

我用XStream 转出的xml是这样<list> <Contacts> <id>1</id> <name>11</name> <email>111</email> <phone>1111</phone> </Contacts> <Contacts> <id>2</id> <name>22</name> <email>222</email> <phone>2222</phone> </Contacts> <Contacts> <id>3</id> <name>33</name> <email>333</email> <phone>3333</phone> </Contacts></list>但我不希望吧phone暴漏出去,希望的输出结果是<list> <Contacts> <id>1</id> <name>11</name> <email>111</email> </Contacts> <Contacts> <id>2</id> <name>22</name> <email>222</email> </Contacts> <Contacts> <id>3</id> <name>33</name> <email>333</email> </Contacts></list>我试着用XSL 做个转换,但还是比较麻烦,有没有更简洁的办法 问题补充:suziwen 写道

解决方案

规则多的话,自己控制下 XStream xstream = new XStream(); Employee emp = new Employee(); emp.setEmpNo("1"); emp.setJob("bb"); emp.setPhone("111111111"); xstream.omitField(Employee.class, "phone"); String xml = xstream.toXML(emp);
解决方案二:
http://xmlviewer.org 在线XML解析/XML格式化工具
解决方案三:
http://www.atool.org/xmlformat.php 在线格式化,php版本
解决方案四:
可以通过注解(@XStreamOmitField)解决。javabean:public class Employee { private String empNo; private String job; @XStreamOmitField private String phone; public String getEmpNo() { return empNo; } public void setEmpNo(String empNo) { this.empNo = empNo; } public String getJob() { return job; } public void setJob(String job) { this.job = job; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; }} XStream xstream = new XStream(); Employee emp = new Employee(); emp.setEmpNo("1"); emp.setJob("bb"); emp.setPhone("111111111"); xstream.processAnnotations(Employee.class); String xml = xstream.toXML(emp); System.out.println(xml);
解决方案五:
public static void filter(String src, String dest) throws IOException {BufferedReader r = new BufferedReader(new FileReader(src));PrintWriter w = new PrintWriter(dest);try {String line;int startIndex;while ((line = r.readLine()) != null) {startIndex = line.indexOf("<phone>");if(startIndex==-1){w.println(line);}}} finally {r.close();w.close();}}对于简单的xml文件,这个代码是适用的
解决方案六:
你可以先把java bean 转换成map形式,并对指定字段进行过滤,然后再用xstream转换这个map对像

时间: 2024-09-20 00:57:21

xml 格式化输出的相关文章

python中日期和时间格式化输出的方法小结_python

本文实例总结了python中日期和时间格式化输出的方法.分享给大家供大家参考.具体分析如下: python格式化日期时间的函数为datetime.datetime.strftime():由字符串转为日期型的函数为:datetime.datetime.strptime(),两个函数都涉及日期时间的格式化字符串,这里提供详细的代码详细演示了每一个参数的使用方法及范例. 下面是格式化日期和时间时可用的替换符号 %a 输出当前是星期几的英文简写 >>> import datetime >&

java实现的xml格式化实现代码_java

核心代码: package com.ddatsh; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.io.UnsupportedEncodingException; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.OutputForm

python常见的格式化输出小结_python

本文总结了一些简单基本的输出格式化形式,下面话不多说了,来看看详细的介绍吧. 一.打印字符串 >>> print "I'm %s" % ("jihite") I'm jihite 二.打印整数 >>> print "I'm %d years old" % (17) I'm 17 years old 三.打印浮点数 >>> print "π=%f" % (3.1415926)

XStream、JAXB 日期(Date)、数字(Number)格式化输出xml

XStream.Jaxb是java中用于对象xml序列化/反序列化 的经典开源项目,利用它们将对象转换成xml时,经常会遇到日期(Date).数字按指定格式输出的需求,下面是使用示例: 一.日期字段格式化输出 1.1 xStream 1 XStream x = new XStream(); 2 x.registerConverter(new DateConverter("yyyy-MM-dd HH:mm:ss", null,TimeZone.getTimeZone("GMT+

XML缩进输出,最简单的方法

XML缩进输出,最简单的方法!抛弃孟子E章的XSLT方法吧! ★XML缩进输出,最简单的方法!By: 无心(cuixiping) 2005-1-28时不时的有人问xml的缩进.网上见的多的是孟子E章BLOG上的XSLT方法(他的blog宣传不错,名气大嘛) 网址: http://blog.111cn.net/net_lover/archive/2004/07/27/53601.aspx 文章: 利用xslt对xml进行缩进格式化处理 该方法可以解决问题,但是,不仅代码繁琐,而且还需要一个xsl文

c-关于C字符串数组格式化输出的一些小问题

问题描述 关于C字符串数组格式化输出的一些小问题 尝试写了一个输入输出文件和小程序,因为出问题的就只有这两行代码,所以没有把其他代码贴上来 最初代码是这样的 head[][5] char head[][5] = { "id", "name", "age", "grade" }; fprintf ( input_file, "%st%st%st%sn", head[0], head[1], head[2],

Python 3.2官方文档教程之格式化输出

一个程序的输出有好多种方式,数据既可以用人们读懂的形式打印出来或者写入到文件以便将来使用.这章就讨论这些问题. 5.1 格式化输出 目前我们已经接触了两种输出值方式: 表达式语句和print()函数.(第三种就是使用file对象中的write()方法;标准的文件输出可参考sys.stdout库文件) 常常你会想控制输出格式化的数据而不是简单用空格分隔的字符.这里有两种方式用来格式化你的输出数据.第一种方式就是由你自己处理所有的字符串,用字符串中的切分或者链接操作你可以创建任何你想要是的字符.标准

JDK5新特性之新的格式化输出

JDK5.0允许象C语言那样直接用printf()方法来格式化输出,并且提供了许多参数来格式化输入,调用也很简单: System.out.format("Pi is approximately %f", Math.Pi); System.out.printf("Pi is approximately %f", Math.Pi); printf()和 format() 方法具有相同的功能. System.out 是 java.io.PrintStream的实例. Pr

tkprof程序产生的格式化输出文件

tkprof的格式化输出文件主要包含: (1)header (2)body (3)summary 1.header: 主要包括一些描述信息,如TKPROF的版本.运行时间,各个统计项的描述.如: TKPROF: Release 8.1.7.0.0 - Production on 星期四 6月 30 13:10:59 2005 (c) Copyright 2000 Oracle Corporation. All rights reserved. Trace file: D:\oracle\admi