Как получить TagName и TextContent XML textNode? - PullRequest
0 голосов
/ 06 апреля 2011

Я столкнулся с одним исключением при попытке получить тэг textnode XML-документа.

Я хотел получить tagName и TextContent всех элементов узла одного XML-файла.

NodeList nList = doc.getElementsByTagName("RESOURCE_INFO");
NodeList head = nList.item(0).getChildNodes();
for(int j=0;j<head.getLength();j++){
     String p=head.item(j).getNodeName();
     String p=head.item(j).getNodeValue();
     String v=head.item(j).getTextContent();
}

Но ни от одного из вышеперечисленных я не смог получить TagName. Так изменил код вот так ..

String p=((Element)head.item(j)).getTagName();

Несмотря на то, что он был скомпилирован, он вызвал ошибку времени выполнения.

  SEVERE: java.lang.ClassCastException: org.apache.xerces.dom.DeferredTextImpl cannot be cast to org.w3c.dom.Element

Это документ XML

<TOTALRESOURCES>
  <RESOURCE_INFO>
    <HEADNODE>
       <HOST_NAME>xencluster</HOST_NAME>
       <HYPER_TYPE>XEN</HYPER_TYPE>
       <DOMAIN_COUNT>1</DOMAIN_COUNT>
       <TOTAL_MEM_MB>1015</TOTAL_MEM_MB>
       <TOTALNODES>6</TOTALNODES>
       <FREENODES>2</FREENODES>
    </HEADNODE>
    <COMPUTENODE>
        <HOST_NAME>xencluster</HOST_NAME>
       <HYPER_TYPE>XEN</HYPER_TYPE>
       <DOMAIN_COUNT>1</DOMAIN_COUNT>
       <TOTAL_MEM_MB>1015</TOTAL_MEM_MB>
    <COMPUTENODE>
    <COMPUTENODE>
        <HOST_NAME>xencluster2</HOST_NAME>
       <HYPER_TYPE>XEN</HYPER_TYPE>
       <DOMAIN_COUNT>2</DOMAIN_COUNT>
       <TOTAL_MEM_MB>1015</TOTAL_MEM_MB>
    <COMPUTENODE>
    </RESOURCE_INFO>
</TOTALRESOURCES>

Как я могу решить эту проблему? Спасибо

1 Ответ

1 голос
/ 06 апреля 2011

Для решения вашей проблемы вы можете использовать SAX-парсер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...