2012-08-01 5 views
0

Java에서 XML 파일을 읽는 방법. 다음은 Java에서 xml 파일을 읽는 방법

<?xml version="1.0" encoding="utf-8"?> 
<LivescoreData> 
    <Sport SportId="1"> 
    <Name language="en">Soccer</Name> 
    <Name language="se">Fotboll</Name> 
    <Category CategoryId="34"> 
     <Name language="en">Australia</Name> 
     <Name language="se">Australien</Name> 
     <Tournament TournamentId="144"> 
     <Name language="en">Hyundai A-League</Name> 
     <Name language="se">Hyundai A-League</Name> 
     <Match MatchId="4616735"> 
      <MatchDate>2011-01-05T07:30:00</MatchDate> 
      <Team1 TeamId="1029369"> 
      <Name language="en">Wellington Phoenix FC</Name> 
      <Name language="se">Wellington</Name> 
      </Team1> 
      <Team2 TeamId="529088"> 
      <Name language="en">Melbourne Victory</Name> 
      <Name language="se">Melbourne Victory</Name> 
      </Team2> 
      <Status Code="100"> 
      <Name language="en">Ended</Name> 
      <Name language="se">Avslutad</Name> 
      </Status> 
      <Winner>1</Winner> 
      <Scores> 
      <Score type="Current"> 
       <Team1>2</Team1> 
       <Team2>0</Team2> 
      </Score> 
      </Scores> 
      <Goals></Goals> 
      <Cards></Cards> 
      <Substitutions></Substitutions> 
      <Lineups></Lineups> 
     </Match> 
     </Tournament> 
    </Category> 
    <Category CategoryId="1"> 
     <Name language="en">England</Name> 
     <Name language="se">England</Name> 
     <Tournament TournamentId="1"> 
     <Name language="en">Premier League</Name> 
     <Name language="se">Premier League</Name> 
     <Match MatchId="4601857"> 
      <MatchDate>2011-01-04T21:00:00</MatchDate> 
      <Team1 TeamId="5431228"> 
      <Name language="en">Blackpool FC</Name> 
      <Name language="se">Blackpool FC</Name> 
      </Team1> 
      <Team2 TeamId="23960"> 
      <Name language="en">Birmingham City</Name> 
      <Name language="se">Birmingham City</Name> 
      </Team2> 
      <Status Code="100"> 
      <Name language="en">Ended</Name> 
      <Name language="se">Avslutad</Name> 
      </Status> 
      <Winner>1</Winner> 
      <Scores> 
      <Score type="Current"> 
       <Team1>5</Team1> 
       <Team2>1</Team2> 
      </Score> 
      </Scores> 
      <Goals></Goals> 
      <Cards></Cards> 
      <Substitutions></Substitutions> 
      <Lineups></Lineups> 
     </Match> 
     <Match MatchId="4601859"> 
      <MatchDate>2011-01-04T21:00:00</MatchDate> 
      <Team1 TeamId="26511"> 
      <Name language="en">Fulham FC</Name> 
      <Name language="se">Fulham FC</Name> 
      </Team1> 
      <Team2 TeamId="94356"> 
      <Name language="en">West Bromwich Albion</Name> 
      <Name language="se">West Bromwich Albion</Name> 
      </Team2> 
      <Status Code="100"> 
      <Name language="en">Ended</Name> 
      <Name language="se">Avslutad</Name> 
      </Status> 
      <Winner>1</Winner> 
      <Scores> 
      <Score type="Current"> 
       <Team1>4</Team1> 
       <Team2>1</Team2> 
      </Score> 
      </Scores> 
      <Goals></Goals> 
      <Cards></Cards> 
      <Substitutions></Substitutions> 
      <Lineups></Lineups> 
     </Match> 
     </Tournament> 
    </Category> 
    </Sport> 
</LivescoreData> 

코드입니다 :

다음은 내 XML 파일입니다 IT는 XML 축구의 첫 번째 값을 출력하고 다음을 인쇄 할 수 없습니다.

nodeLst = doc.getElementsByTagName("Sport"); 
for (int i = 0; i < nodeLst.getLength(); i++) { 

    Node myNode = nodeLst.item(i); 

    if (myNode.getNodeType() == Node.ELEMENT_NODE) { 

     Element Sport = (Element) myNode; 
     NodeList Name= Sport 
     .getElementsByTagName("Name"); 
     Element NameElement = (Element) Name.item(0); 
     NodeList Namevalue = NameElement.getChildNodes(); 
     System.out.println("Name : " 
    + ((Node) Namevalue.item(0)).getNodeValue()+"|"); 

    //This gives me null value 
     NodeList Category = Sport 
     .getElementsByTagName("Category"); 
     Element CategoryName= (Element) Category 
     .item(0); 
     NodeList Categoryvalue = CategoryName 
     .getChildNodes(); 
     System.out.println("Category: " 
     + ((Node) Categoryvalue.item(0)) 
     .getNodeValue()); 
    } 
} 

첫 번째 데이터 Soccer.The 두 ​​번째는 단지 null 값을 제공 할 수 있습니다. 로

내가 내 결과를 필요

:

Soccer | Australia | Hyundai A-League | Wellington Phoenix FC - Melbourne Victory : 2 - 0 
Soccer | England | Premier League | Blackpool FC - Birmingham City : 5 - 1 
Soccer | England | Premier League | Fulham FC - West Bromwich Albion : 4 - 1 
+0

시작하려면 [이 튜토리얼] (http://www.java-tips.org/java-se-tips/javax.xml.parsers/how-to-read-xml-file-in- java.html) 설명은 자바에서 XML을 읽을 수 있습니다 ... –

답변

0

당신이 정말로 당신이 말한 XML 파일을 사용하여 수행 할 작업을했다하지 않았으므로, 내가 할 수있는 최선이 가이드로 안내입니다 http://tutorials.jenkov.com/java-xml/dom.html

+0

안녕하세요, reply.Below 주셔서 감사합니다 내 code.Am 값을 가져올 수있는 첫 번째 태그 이름 : 축구 | 하지만 다음 태그에서 null 값을 얻고 있습니다. 어떻게 도와 주실 수 있습니까? – user1230541

+0

@ user1230541 질문을 편집하여 추가 정보를 추가 할 수 있습니다. –

0

당신은 XML

0

을 구문 분석 JAXP를 사용할 수 그것의 더/더 쉽게 NOT 자바에서이 작업을 수행 할 수 있지만, XSLT 또는 XQuery를에 그것을 할 코드를 Java 응용 프로그램에서 호출 할 수 있습니다.

관련 문제