Xstream-xml和实体对象相互转换特殊问题
来源:互联网 发布:常见网络安全技术分析 编辑:程序博客网 时间:2024/04/28 12:59
之前发了一篇博文《xml和实体对象相互转换 一步到位 》,在项目实际应用过程中我遇到了这种xml格式:
- <?xml version="1.0" encoding="UTF-8"?>
- <html>
- <body>
- <div id="div1" name="div">123</div>
- <form action="saveForm.asp" method="post">
- <h1>请输入您的联系信息:</h1>
- <lable>名字:</lable>
- <p>
- <input type="submit" id="btn_sub" name="btn_sub" value="Submit"/>
- <input type="reset" id="btn_res" name="btn_res" value="Reset"/>
- </p>
- </form>
- </body>
- </html>
原来我举例用的是以下xml文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <html>
- <body>
- <div id="div1" name="div"/>
- <form action="saveForm.asp" method="post">
- <h1>请输入您的联系信息:</h1>
- <lable>名字:</lable>
- <p>
- <input type="submit" id="btn_sub" name="btn_sub" value="Submit"/>
- <input type="reset" id="btn_res" name="btn_res" value="Reset"/>
- </p>
- </form>
- </body>
- </html>
两个xml的区别是:
<div id="div1" name="div"/>
<div id="div1" name="div">123</div>
针对<a b="">123</a>这种类型的问题解决方案是:见代码:
修改原来的HtmlDiv:加了字段value,然后注解加了@XStreamConverter(HtmlConverter.class),HtmlConverter这是自己实现了Xstream的Converter
- @XStreamAlias("div")
- @XStreamConverter(HtmlConverter.class)
- public class HtmlDiv implements BaseConverterBean {
- @XStreamAsAttribute
- private String id;
- @XStreamAsAttribute
- private String name;
- private String value;
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getValue() {
- return value;
- }
- public void setValue(String value) {
- this.value = value;
- }
- }
HtmlConverter:
- public class HtmlConverter implements Converter {
- @Override
- public void marshal(Object obj, HierarchicalStreamWriter writer,MarshallingContext arg2) {
- HtmlDiv div = (HtmlDiv)obj;
- writer.setValue(div.getValue());
- }
- @Override
- public Object unmarshal(HierarchicalStreamReader reader,UnmarshallingContext arg1) {
- HtmlDiv div = new HtmlDiv();
- div.setValue(reader.getValue());
- return div;
- }
- @SuppressWarnings("unchecked")
- @Override
- public boolean canConvert(Class clazz) {
- return clazz.equals(HtmlDiv.class);
- }
- }
经测试这样就能取到value的值的。
@XStreamConverter(value=ToAttributedValueConverter.class, strings={"fileName"})
public static class InputFileInfo {
@XStreamAsAttribute
private String type;
private String fileName;
}
同上自定义转换一样功能。
http://crawler.iteye.com/blog/1672986
- Xstream-xml和实体对象相互转换特殊问题
- 利用XStream实现实体对象和xml文件相互转换
- java 实体类与xml之间的相互转换,利用XStream在Java对象和XML之间相互转换
- 利用XStream在Java对象和XML之间相互转换
- 利用XStream在Java对象和XML之间相互转换
- 利用XStream在Java对象和XML之间相互转换
- 利用XStream在Java对象和XML之间相互转换
- 利用XStream在Java对象和XML之间相互转换
- 利用XStream在Java对象和XML之间相互转换
- 使用XStream将Java对象和XML之间相互转换
- 利用XStream在Java对象和XML之间相互转换
- XStream: Java对象和XML之间相互转换的利器
- 利用XStream在Java对象和XML之间相互转换
- xStream框架完美实现Java对象和xml文档JSON、XML相互转换
- 两行代码轻松搞定XML和对象间相互转换. XStream 简单示例.
- XStream在Java对象和XML之间相互转换 工具类
- xStream可以轻易的将Java对象和xml文档相互转换
- 使用 XStream 实现 Java 对象与 XML 的相互转换
- ios:编译vp8 libvpx
- Unity介绍
- 毕业时的心情
- 定时工具 quartz
- Eclipse+/CDT/ADT+cygwin运行c/c++工程
- Xstream-xml和实体对象相互转换特殊问题
- F#中的异步及并行模式(1):并行CPU及I/O计算
- JNI 数据类型转换
- Microsoft ADO.NET 与 Oracle ODP.NET
- 转载 : HEX文件格式,ihex,hex解析(这个应该是准确的描述)
- 【手机技巧§手机QQ空间如何屏蔽好友动态§】
- cobol基本语法
- linux下如何配置apue
- Xen domainU网络配置