1
<PlayListSettings> 
     <PlayList> 
      <id>PlayList1</Name> 
      <File class="string">/mnt/sdcard/Video1</File> 
     </PlayList> 
    </PlayListSettings> 

이것은 File이 문자열의 arrayList 인 My Serialized xml입니다. xstream.aliasSystemAttribute (null, "class")를 사용하여 class = "string"을 제거 할 수 있습니다.XStream을 사용하여 deserialize하는 방법은 무엇입니까?

and the output is 
<PlayListSettings> 
     <PlayList> 
      <id>PlayList1</Name> 
      <File>/mnt/sdcard/Video1</File> 
     </PlayList> 
    </PlayListSettings> 

어떻게 XStream을을 사용하여 직렬화합니까?

+0

음, 어떻게 직렬화 않습니다

@XStreamAlias("PlayList") public final class PlayList { @XStreamImplicit(itemFieldName = "File") private final List<String> files = new ArrayList<>(); public void addFile(final String file) { checkFile(file); files.add(file); } public void removeFile(final String file) { checkFile(file); files.remove(file); } public List<String> getFiles() { return Collections.unmodifiableList(files); } private void checkFile(final String file) { if (file == null) { throw new NullPointerException(); } else if (file.isEmpty()) { throw new IllegalArgumentException("is empty"); } } public static void main(String[] args) { final PlayList playList = new PlayList(); playList.addFile("Foo"); playList.addFile("Bar"); // Serialize final XStream xstream = new XStream(); xstream.autodetectAnnotations(true); final String xml = xstream.toXML(playList); System.out.println(xml); // Deserialize final PlayList playList2 = (PlayList) xstream.fromXML(xml); for (final String file : playList.getFiles()) { System.out.println(file); } } } 

출력은 다음과 같습니다 여기에 완벽하게 동작하는 예제입니다? 'String yourXml = XStream.toXml (yourObject)'를 사용한다면,'Object yourObject = XStream.fromXml (yourXml)'을 사용하십시오. 더 많은 도움을 얻으려면 몇 가지 코드를 보여주십시오. – Matthias

답변

1

@XStreamImplicit 주석을 사용할 수 있습니다.

<PlayList> 
    <File>Foo</File> 
    <File>Bar</File> 
</PlayList> 
관련 문제