Как получить значение списка узлов в парсере xml dom?

У меня есть один XML, который выглядит так::

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

Я успешно разбираю этот тип XML. Моя проблема в том, что когда я запускаю веб-службу и если нет аутентификации с сервера, ответ веб-службы выглядит следующим образом::

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

Я надеюсь, что мой вопрос ясен... Пожалуйста, предоставьте решение как можно скорее. Заранее спасибо....


person AndroidLearner    schedule 25.08.2012    source источник


Ответы (1)


Используйте 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--
       }
    }
person S.D.    schedule 25.08.2012