2012-08-25 3 views
1

I는 다음과 같이 하나의 XML은 ::했다xml dom 파서에서 노드 목록의 값을 가져 오는 방법은 무엇입니까?

<Channels> 
     <Channel Id="511" Title="Test" ChannelDescription="This is Test Channel./> 
</Channels> 

I 오전 성공적으로 구문 분석 XML.My 이런 종류의 문제는 내가 웹 서비스를 발사 할 때이다 다음 서버 WebService에 응답로부터 인증이없는 경우 like :

<AuthenticationError>An Active Session Already Exists For This User.</AuthenticationError> 

그래서 루트 노드가 "인증 오류"또는 "Notes"인지 어떻게 확인할 수 있습니까? 그리고 만약 내가 인증 오류 태그를 어떻게 얻을 수있는 노드 값을 얻을 수 있습니다 "활성 사용자가 이미이 사용자에 대한 존재합니다."?? XML 구문 분석에 대한

코드는이 ::

내 질문은 분명하다 희망
NodeList node =null; 
node= (NodeList)result.getElementsByTagName("Channels"); 


for(int j=0;j<node.getLength();j++) 
{        
Node aNode=node.item(j); 
Element fstElmnt = (Element) aNode; 

NodeList websiteList = fstElmnt.getElementsByTagName("Channel"); 
int check=websiteList.getLength(); 

for(int k=0;k<check;k++) 
{ 
    DatabaseConstant myChannels = new DatabaseConstant(); 
    Node checkNode=websiteList.item(k); 

    Element websiteElement = (Element) checkNode;                    
    myChannels.id=websiteElement.getAttribute("Id"); 
    myChannels.title=websiteElement.getAttribute("Title"); 

    channel .add(myChannels); 
    } 
} 
} 

... 최대한 빨리 해결책을 제공하십시오입니다. 미리 감사드립니다 ....

답변

2

을 얻으려면 getDocumentElement()을 사용하고 getTagName()을 사용하여 태그 이름을 가져옵니다.

예 :

Element root = result.getDocumentElement(); 
    String name = root.getTagName(); 

    if(name.equalsIgnoreCase("AuthenticationError")) 
    { 
     String value = myDocument.getDocumentElement().getTextContent(); 
     System.out.println("Error:" + value); 
    } 
    else if(name.equalsIgnoreCase("Notes")) 
    { 
     NodeList nodes = root.getElementsByTagName("Channels"); 

     for(int i = 0 ; i < nodes.getLength() ; i ++) 
     { 
      //-----do something with channels nodes-- 
     } 
    } 
+0

많은 많은 감사 친애하는 ....... :-) 완벽하게 작동 – AndroidLearner

관련 문제