`我需要实现的输出:
<Entity>
<MRA_BALANCE_SHEET>
<R0030C0030>value</R0030C0030>
<R0030C0040>value</R0030C0040>
</MRA_BALANCE_SHEET>
<MRA_BALANCE_SHEET>
<R0040C0030>value</R0040C0030>
<R0040C0040>value</R0040C0030>
</MRA_BALANCE_SHEET>
</Entity>
字符串
每一个元素,“R 0030”将递增10。所以你可以看到,在下一个列表中,R 0030 C 0030将递增10,=“R 0040 C 0030”
需要帮助`
这是我的样本实体
private String PHP;
private String PHPUSD;
@XmlJavaTypeAdapter(DynamicElementNameAdapter.class)
public String getPHP() {
return PHP;
}
/setter...
型
我已经试过这个适配器了
public class DynamicElementNameAdapter extends XmlAdapter<String, String>{
private static int counter = 30;
@Override
public String unmarshal(String v) throws Exception {
// TODO Auto-generated method stub
return v;
}
@Override
public String marshal(String v) throws Exception {
String dynamicElementName = "R" + String.format("%04d", counter) + "C0030";
counter += 10; // Increment by 10 for the next element
return dynamicElementName;
}
}
型
但输出是错误的:
<Entity>
<MRA_BALANCE_SHEET>
<PHP>R0030C0030</PHP>
</MRA_BALANCE_SHEET>
<MRA_BALANCE_SHEET>
<PHP>R0040C0030</PHP>
</MRA_BALANCE_SHEET>
</Entity>
型
Help!
1条答案
按热度按时间bvjxkvbb1#
您应该创建一个Map,将元素名作为键,将元素值作为值,然后,您可以使用XStream或任何其他库将此Map转换为xml。
请参阅How to convert XML to java.util.Map and vice versa?了解更多信息。