xstream属性相互依赖

时间:2013-08-03 17:06:22

标签: java xml-serialization xstream

我是xstream的新手。 考虑一块xml:

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

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

感谢您的帮助

1 个答案:

答案 0 :(得分: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);
    }