2012-01-18 14 views
0

xmlファイルをこの形式で印刷する方法:xmlをjavaでDomを使用して解析する

GMSports |カテゴリ|トーナメント| TeamAName - TeamBName:TeamAScore - TeamBScore

<?xml version="1.0" encoding="UTF-8"?> 
    <Data> 
    <GMSport SportId="1"> 
    <Name language="en">Soccer</Name> 
    <Category CategoryId="34"> 
    <Name language="en">Australia</Name> 
    <Tournament TournamentId="144"> 
    <Name language="en">Hyundai A-League</Name> 
    <Match MatchId="4616735"> 
    <MatchDate>2011-01-05T07:30:00</MatchDate> 
     <TeamA TeamId="1029369"> 
     <Name language="en">Wellington Phoenix FC</Name> 
     </TeamA> 
     <TeamB TeamId="529088"> 
     <Name language="en">Melbourne Victory</Name> 
     </TeamB> 
     <Status Code="0"> 
     <Name language="en">Not started</Name> 
     </Status> 
     <Winner>0</Winner> 
    </Match> 
     </Tournament> 
    </Category> 
    </GMSport> 
</Data> 

ここで私は

public static void main(String[] args) { 
     try { 
     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder docBuilder = null; 
     try { 
      docBuilder = factory.newDocumentBuilder(); 
     } catch (ParserConfigurationException ex) { 
      Logger.getLogger(DomeParser.class.getName()).log(Level.SEVERE, null, ex);   
     } 

     Document doc = docBuilder.parse (new File("test.xml")); 

     NodeList list = doc.getElementsByTagName("*"); 

     for (int i = 0; i < list.getLength(); i++) { 

      Element element = (Element) list.item(i); 
      String nodeName = element.getNodeName(); 

      if (nodeName.equals("GMSport")) { 
       System.out.print(nodeName+"|"); 

      } 

      else if (nodeName.equals("Category")) { 
       System.out.print(nodeName+"|"); 

      } 
      else if (nodeName.equals("Tournament")) { 
        System.out.print(nodeName+"|"); 
      } 

     } 

    } catch (SAXException ex) { 
     Logger.getLogger(DomeParser.class.getName()).log(Level.SEVERE, null, ex); 
    } catch (IOException ex) { 
     Logger.getLogger(DomeParser.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 
+2

実際の出力は、期待どおりにどのように異なっていますか? – maerics

答えて

2
  1. をしようとしています(XMLからあなたのドメインクラスを作成します
  2. トーナメントなど、カテゴリをスポーツのような適切なドメインクラスを作成します。
  3. ドメインクラスを作成したら、それを使って任意の方法で印刷することができます。

現在のコードでは、解析とレポート/印刷のロジックを縮尺されていない論理に混在させています。

関連する問題