Как сохранить атрибут и значение XML-тега с помощью XStream

#java #xml #xstream

#java #xml #xstream

Вопрос:

У меня есть следующий XML-файл

 <?xml version="1.0"?>
<paths>
    <path action="M">some/path</path>
    <path action="D">another/path</path>
</paths>
  

Я пытаюсь прочитать его, используя следующие классы:

 public class Paths {
    @XStreamImplicit(itemFieldName="path")
    private ArrayList<Path> paths;  
}

@XStreamAlias("path")
public class Path {
    String path;
    @XStreamAsAttribute
    private String action;
}
  

Значение ‘action’ (Path.action) действительно сохраняется. Но я получаю только NULL для переменной Path.path.

Есть идеи о том, что я мог сделать неправильно?

Ответ №1:

попробуйте использовать attributedvalueconverter:

 @XStreamAlias("path")
@XStreamConverter(value=ToAttributedValueConverter.class, strings={"path"})
public class Path {
  String path;
  String action;
}