我的任务是将现有的模拟工具数据通信的ASCII格式转换为XML格式。XML或以前的ASCII数据包含服务器计算任务所需的数据库信息和其他参数。
使用JAXB,我设法填充了所需的数据。当我编组它时,我可以看到由模式定义的XML结构。
item item1 = new item();
Parameter par1 = new Par1();
par1.setName("DatabaseNr);
par1.setContent("1500");
------Marshalling---------
Marshaller mar = context.createMarshaller();
mar.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
----Printing----
<Item >
<Parameter Name="databaseNr">1500</Parameter>
<Parameter Name="pressure"></Parameter>
<Parameter Name="time"></Parameter>
</Item>我的问题是,我如何才能在非常大的XML中找到最重要的信息,如数据库编号,以便进行进一步的步骤?这是我需要解析的地方吗?感谢您的回答
发布于 2012-06-19 21:16:39
您似乎正在使用具有非常通用的对象结构的实现。如果您有一个更特定于领域的模型,那么导航会更容易,如下所示:
项目
package forum11100410;
import java.util.Date;
import javax.xml.bind.annotation.*;
@XmlRootElement
@XmlType(propOrder={"databaseNr", "time", "pressure"})
public class Item {
private int databaseNr;
private int pressure;
private Date time;
public int getDatabaseNr() {
return databaseNr;
}
public void setDatabaseNr(int databaseNr) {
this.databaseNr = databaseNr;
}
public int getPressure() {
return pressure;
}
public void setPressure(int pressure) {
this.pressure = pressure;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
}演示
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<item>
<databaseNr>1500</databaseNr>
<pressure>1</pressure>
<time>2012-06-19T09:16:35.666-04:00</time>
</item>输出
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<item>
<databaseNr>1500</databaseNr>
<pressure>1</pressure>
<time>2012-06-19T09:16:35.666-04:00</time>
</item>https://stackoverflow.com/questions/11100410
复制相似问题