如何在xml dom解析器中获取节点列表的值?
问题描述:
我有一个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);
}
}
}
我希望我的问题是清楚的...请尽快提供解决方案。在此先感谢....
答
使用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--
}
}
非常非常感谢亲爱的.......完美地工作:-) – AndroidLearner