如何使用XML进行数据通信

如何使用XML进行数据通信,xml,Xml,我的任务是转换模拟工具的现有ASCII数据通信格式 转换为XML格式。XML或以前的ASCII数据包含数据库信息和其他参数 服务器计算任务所需的 使用JAXB,我成功地填充了所需的数据。当我封送它时,我可以看到一个XML结构 如模式所定义 item item1 = new item(); Parameter par1 = new Par1(); par1.setName("DatabaseNr); par1.setContent("1500"); ------Marshalling-----

我的任务是转换模拟工具的现有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>
item item1=新项();
参数par1=新的par1();
par1.setName(“数据库编号”);
par1.设定内容(“1500”);
------编组---------
Marshaller mar=context.createMarshaller();
mar.setProperty(Marshaller.JAXB_格式的_输出,Boolean.TRUE);
----印刷品----
1500
我的问题是,我怎样才能从非常大的数据库中找到最重要的信息,如数据库号
用于进一步步骤的XML?这就是我需要解析的地方吗?感谢您的回答

您似乎正在使用具有非常通用的对象结构的实现。如果您有一个更特定于域的模型,例如以下模型,将更容易导航:

项目

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>

1500
1.
2012-06-19T09:16:35.666-04:00
输出

<?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>

1500
1.
2012-06-19T09:16:35.666-04:00

遵循JAXB模式,您应该解组XML输出,并在模式派生类中使用get方法来访问所需的数据。这非常有帮助。感谢您的快速响应。我在JAXB生成的java类中添加此accesor方法时出错。”属性dabaseNr存在,但未在@XmlType.propOrder中指定“@fitsena-我在示例中添加了一个
@XmlType
注释,并设置了
proporter
。那么,我应该在之后将其解组吗?”?或者使用像JDOM这样的XML读取器?在手动添加这些方法之后,编组的结果有点变形。因为我从一个模式开始工作。