2013-02-19 2 views
2

내 XML 구조. JAXB XML -> Java 객체 속성

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

나를 부탁합니다.

+0

어떤 개체 모델 당신은에 XML 매핑된다? –

답변

2

당신은

JAXB (JSR-222)의 구현은 당신이 당신의 XML 문서를 변환하는 객체 모델을 가지고해야 다음

자바 모델을 할 수 있습니다.

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