【问题标题】:xstream attribute interdependenciesxstream 属性相互依赖关系
【发布时间】:2013-08-04 19:25:21
【问题描述】:

我对 xstream 很陌生。 考虑一段xml:

<?xml version="1.0"?>
<els>
    <el attInt="3" attDbl="1.34525"/>
</els>

我需要将attDbl 属性转换为将小数点移动attInt 指定的位数。我看不到如何使用转换器来做到这一点,因为我似乎无法访问转换器界面中的这两个属性。这是我可以用转换器做的事情,还是我应该为此目的使用 xslt?

感谢您的帮助

【问题讨论】:

    标签: java xml-serialization xstream


    【解决方案1】:

    在“el”级别运行的转换器确实可以通过reader 参数访问这两个属性:

    public class ElConverter implements Converter {
    
        @Override
        public Object unmarshall(HierarchicalStreamReader reader, UnmarshallingContext context) {
            int attInt = Integer.parseInt(reader.getAttribute("attInt"));
            double attDbl = Double.parseDouble(reader.getAttribute("attDbl"));
    
            ...
        }
    
        @Override
        public boolean canConvert(Class type) {
            return El.class.isAssignableFrom(type);
        }
    

    【讨论】:

    • 感谢 mdi - 我现在可以看到了。抱歉,当我阅读文档时,我的理解是只能在我现在看到不正确的单个属性上创建转换器 - 您的示例很好而且清晰。
    猜你喜欢
    • 1970-01-01
    • 2013-07-19
    • 2016-04-13
    • 1970-01-01
    • 2011-06-26
    • 2020-08-31
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    相关资源
    最近更新 更多