2012-08-25 44 views
1

我有一個XML看起來這樣的:如何在xml dom解析器中獲取節點列表的值?

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

我成功地解析這種XML.My問題是,當我開的web服務,如果沒有從服務器,則web服務響應認證像這樣::

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

那麼如何檢查根節點是「驗證錯誤」還是「註釋」。如果我得到身份驗證錯誤標記,那麼我怎麼能得到它的節點值是「一個活動的會話已經存在這個用戶」。

規範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()獲取根Element,然後使用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

相關問題