2012-08-25 48 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

相关问题