我正在尝试将此XML转换为Java对象,然后更新键和值,然后将其保存到XML。我可以转换简单的XML,但这个有两个相同的属性。
任何人都可以帮我在java类中将此xml表示为Configuration.java
吗?
XML
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="mode" value="1"/>
<add key="type" value="shs"/>
</appSettings>
</configuration>
Configuration.java
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Configuration {
String appSettings;
String add;
String key;
String value;
public String getAppSettings() { return appSettings; }
@XmlElement
public void setAppSettings(String appSettings) { this.appSettings = appSettings;}
public String getAdd() { return add; }
@XmlElement
public void setAdd(String add) { this.add = add; }
public String getKey() { return key; }
@XmlAttribute
public void setKey(String key) { this.key = key; }
public String getValue() { return value; }
@XmlAttribute
public void setValue(String value) { this.value = value; }
}
答案 0 :(得分:2)
我建议:
答案 1 :(得分:1)
我认为您必须为List
节点提供add
:
<add key="mode" value="1"/>
<add key="type" value="shs"/>
修改强> 您可以查看JAXB article寻求帮助。
答案 2 :(得分:1)
如果要对XML到POJO的创建进行精细控制,请使用JAXB。但是您必须首先在XSD中指定XML的结构,然后让JAXB为您生成Java类。
另一种方法是使用XStream。
XStream xstream = new XStream();
Configuration config= (Configuration)xstream.fromXML(xml);
但是你可能不得不更新你的Configuration类以使用List作为添加节点,正如Kuldeep Jain在他的回答中所说的那样。
编辑:看一下2分钟的XStream教程 - http://x-stream.github.io/tutorial.html