java类中的xml表示?

时间:2012-03-05 14:52:44

标签: java xml xml-parsing

我正在尝试将此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; }

   }

3 个答案:

答案 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