2011-02-18 6 views
1

이것은 Java 객체에 XML 파일을 만든 방법입니다. "xjc"와 유효한 XML 스키마를 사용했으며 "생성 된"* .java 파일을 다시 가져 왔습니다. 나는 이클립스에서 다른 패키지에 그들을 가져 왔습니다. XML 파일을 2 방향으로 읽는 중입니다. 사용하는 DOM buider 사용XML 구문 분석 Java 확인

System.out.println("Using FILE approach:"); 
    File f = new File ("C:\\test_XML_files\\complex.apx"); 
    JAXBElement felement = (JAXBElement) u.unmarshal(f); 
    MyObject fmainMyObject = (MyObject) felement.getValue(); 

2) : XML 파일을로드

1)

방법 지금
 System.out.println("Using DOM BUILDER Approach:"); 
     JAXBElement element = (JAXBElement) u.unmarshal(test());; 
     MyObject mainMyObject = (MyObject) element.getValue(); 

"시험은()"아래 코드가 포함되어

public static Node test(){ 

    Document document = parseXmlDom(); 
    return document.getFirstChild(); 
} 

private static Document parseXmlDom() { 

    Document document = null; 

    try { 

     // getting the default implementation of DOM builder 
     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder builder = factory.newDocumentBuilder(); 

     // parsing the XML file 
     document = builder.parse(new File("C:\\test_XML_files\\MyXML_FILE.apx")); 

    } catch (Exception e) { 
     // catching all exceptions 
     System.out.println(); 
     System.out.println(e.toString()); 
    } 
    return document; 
} 

은 Java Object에 XML을 수행하는 표준 방법입니까? 개체에 액세스 할 수 있으면 모든 것이 제대로 작동하는지 테스트했습니다. (지금까지) 다른 접근 방법을 제안합니까 ?? 아니면 이것으로 충분합니까?

+1

XML에 액세스하는 데는 여러 가지 방법이 있습니다. JAXB에 관해서는 http://download.oracle.com/javase/6/docs/api/javax/xml/bind/Unmarshaller.html을 참조하십시오.이 두 가지 예제에는 두 가지 방법이 있습니다. –

+0

DOM 개체 또는 Java XML 바인딩을 찾으십니까? – gigadot

+0

Voo 님의 위대한 답변을 확인하십시오. http://stackoverflow.com/questions/5059224/which-is-the-best-library-for-xml-parsing-in-java/5059411#5059411 –

답변

0

나는 "표준 방법"에 대해 모른다. 그러나 어느 쪽이라도 나에게 좋아 보인다. 첫 번째 방법은 다른 요소/요구 사항이없는 한 간단하게 (코드가 적게) 보이기 때문에 아마 그렇게 할 수 있습니다.

FWIW는 unmarshal(File) 메서드가 구현되어 두 번째 접근 방식에서 수행중인 작업을 수행하기를 기대합니다.


그러나 프로젝트에 "충분한"것이 무엇인지 판단하는 것은 당신과 동료에게 달려 있습니다.

+0

도움을 청합니다. – pantelis