XML представление в классе Java? - PullRequest
0 голосов
/ 05 марта 2012

Я пытаюсь преобразовать этот XML в объект Java, а затем обновить ключ и значение, а затем сохранить его в XML. Я могу преобразовать простой XML, но у этого есть два атрибута, которые являются одинаковыми.Кто-нибудь может мне помочь представить этот XML в классе Java как 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 ]

2 голосов
/ 05 марта 2012

Я предлагаю:

1 голос
/ 03 июня 2012

Используйте JAXB, если вы хотите точный контроль над созданием XML для POJO. Но сначала вам нужно будет указать структуру вашего XML в XSD и позволить JAXB сгенерировать классы Java для вас.

Другой способ - использовать XStream.

XStream xstream = new XStream();
Configuration config= (Configuration)xstream.fromXML(xml);

Но вам, возможно, придется обновить свой класс конфигурации, чтобы использовать List для узлов добавления, как сказал Кулдип Джайн в своем ответе.

Редактировать: взгляните также на 2-минутное руководство по XStream - http://x -stream.github.io / tutorial.html

1 голос
/ 05 марта 2012

Я думаю, вам понадобится List для следующих узлов add:

<add key="mode" value="1"/>   
<add key="type" value="shs"/>

РЕДАКТИРОВАТЬ: Возможно, вы посмотрите на JAXB статью за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...