gpt4 book ai didi

java - 使用XStream读取XML对象时,如果我不知道XML有多少个字段怎么办?

转载 作者:太空宇宙 更新时间:2023-11-04 15:19:04 26 4
gpt4 key购买 nike

我已经设置了一个从 XML 读取的系统,但在读取 XML 之前我需要手动构建该对象。

XML:

<actor id="" PGFVersion="" GSCVersion="">
<attributes>
<text id="name">Actor 1</text>
<real id="time">0</real>
<point id="position">
<real id="x">0</real>
<real id="y">0</real>
</point>
<size id="size">
<real id="width">0</real>
<real id="height">0</real>
</size>
<angle id="rotation">0</angle>
<color id="color">
<real id="red">0</real>
<real id="green">0</real>
<real id="blue">0</real>
<real id="alpha">0</real>
</color>
<image id="image">0</image>
<text id="tags">tag1 tag2</text>
<boolean id="preloadArt">true</boolean>
</attributes>
</actor>

我如何设置对象:

public class Attributes {

@XStreamImplicit
public List fields = new ArrayList();

public Attributes(){

this.addText("name", "Actor 1");
this.addReal("time", "0");
this.addPoint("position", "0", "0");
this.addSize("0", "0");
this.addAngle("rotation", "0");
this.addColor("0", "0", "0", "0");
this.addImage("0");
this.addText("tags", "tag1 tag2");
this.addBoolean("preloadArt","true");


}

public void addText(String id, String value){
Text text = new Text(id,value);
this.fields.add(text);
}

//other adders

}

但是我应该如何处理随机的字段计数。如果有 2 <color> 怎么办?我将读取 XML 上的字段。如何实现自动化?

最佳答案

通常,XStream 对象具有表示 XML 中字段的字段。请参阅 XStream tutorial 中的 Person 对象.

如果您有这种类型的对象,我认为您应该能够使用 @XStreamImplicit 注释 color 属性,以处理 XML 中的多个事件。

沿着这段未经测试的代码的某处:

public class Attributes {

// 'name' and 'text' occurs only once.
public String name;

public String text;

public Size size;

// The other attributes

// color can occur multiple times.
@XStreamImplicit
public int color;

}

关于java - 使用XStream读取XML对象时,如果我不知道XML有多少个字段怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20604737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com