2

シミュレーションツールのデータ通信の既存の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からデータベース番号などの最も重要な情報をどのように見つけることができるかということです。これは構文解析が必要な場所ですか?あなたの答えをありがとう

4

1 に答える 1

1

非常に一般的なオブジェクト構造でJAXB(JSR-222)実装を使用しているようです。次のようなドメイン固有のモデルがあると、ナビゲートしやすくなります。

アイテム

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>
于 2012-06-19T13:16:38.743 に答える