如何获得在XML DOM解析器节点列表的价值?(How to get value of node l

2019-10-17 04:04发布

我有一个XML看起来像这样::

<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);
    }
}
}

我希望我的问题是清楚的...请尽快提供解决方案。 提前致谢....

Answer 1:

使用getDocumentElement()获得root 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--
       }
    }


文章来源: How to get value of node list in xml dom parser?