2

私のXML構造。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<A>
    <B ID="www">
        <C>abcde</C>
    </B>
</A>

私は使用しますUnmarshaller

System.out.println(c.toString());   => abcde

属性情報が欲しい。

System.out.println(????????);        => ID or count

お願い助けて。

4

1 に答える 1

2

あなたは次のことができます

JAVAモデル

JAXB(JSR-222)の実装では、XMLドキュメントを変換するオブジェクトモデルが必要です。

A

import javax.xml.bind.annotation.*;

@XmlRootElement(name="A")
public class A {

    private B b;

    @XmlElement(name="B")
    public B getB() {
        return b;
    }

    public void setB(B b) {
        this.b = b;
    }

}

B

import javax.xml.bind.annotation.*;

public class B {

    private String id;
    private String c;

    @XmlAttribute(name = "ID")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @XmlElement(name = "C")
    public String getC() {
        return c;
    }

    public void setC(String c) {
        this.c = c;
    }

}

デモコード

XMLをJavaオブジェクトに変換したら、オブジェクトをナビゲートして目的のデータを取得できます。

デモ

import java.io.File;
import javax.xml.bind.*;

public class Demo {

    public static void main(String[] args) throws Exception {
        JAXBContext jc = JAXBContext.newInstance(A.class);

        Unmarshaller unmarshaller = jc.createUnmarshaller();
        File xml = new File("src/forum14951650/input.xml");
        A a = (A) unmarshaller.unmarshal(xml);

        System.out.println(a.getB().getId());
        System.out.println(a.getB().getC());
    }

}

出力

www
abcde
于 2013-02-19T15:13:29.820 に答える