2014-08-29 7 views
0

Je cherche à obtenir seulement le nom de l'étiquette, et ce n'est pas des enfants.java Convertir l'élément en chaîne

J'ai un xml comme ceci:

<RESPONSE> 
    <RESULT>            !--TableName 
     <ADDRESS1>123 Main Street</ADDRESS1>    !--ColumnName 
     <ZIP>12345</ZIP>         !--ColumnName 
    </RESULT> 
    <RESULT>            !--TableName 
     <ADDRESS1>245 Elm Street</ADDRESS1>     !--ColumnName 
     <ZIP>45678</ZIP>         !--ColumnName 
    </RESULT> 
    <VIN>             !--TableName 
     <VIN_NUM>1K45678RTW23</VIN>       !--ColumnName 
    </VIN> 
    …. 
</REPSONSE> 

Je tente de sauver dynamiquement le xml dans son nom de table et de colonne appropriés. Donc, je veux extraire quel que soit le premier élément, et l'assigner à une variable de nom de table, puis les enfants en tant que colonnes.

Voici ce que je fais jusqu'à présent:

private void extractToTableSet(Document doc, int appseqno) throws Exception 
{ 
    NodeList responseList = doc.getElementsByTagName("RESPONSE"); 
    for (int i = 0; i < responseList.getLength(); i++) { 
     Node currentNode = responseList.item(i); 
     if (currentNode.getNodeType() == Node.ELEMENT_NODE) { 
      Element tableElement = (Element) responseList.item(i); 
      if (tableElement != null && tableElement.hasChildNodes()) { 
       for (columnNode = tableElement.getFirstChild(); columnNode != null; columnNode = columnNode.getNextSibling()) { 
        if (columnNode.getNodeType() == Node.TEXT_NODE) { 
         columnName = columnNode.getNodeValue; 
        } 
       } 
      } 
     } 
    } 
} 

De cette façon, je ne suis en mesure d'obtenir les valeurs des nœuds enfants. Est-il possible d'obtenir le nom des balises Element? Comme je veux extraire la valeur RESULT de l'objet Document.

+2

check element.getTagName: http://www.w3.org/2003/01/dom2-javadoc/org/w3c /dom/Element.html#getTagName__ – user3487063

+0

essayez-vous de récupérer la variable? – user3487063

+0

oui, j'essaie de récupérer la variable – roymustang86

Répondre

1

Dans DOM, un nom d'élément est récupéré à l'aide de Node.getNodeName().

Exemple:

if(node.getNodeType() == Node.ELEMENT_NODE) { 
    String elementName = node.getNodeName(); 
    ... 
} 
+0

Existe-t-il une différence par rapport à getTagName? – roymustang86

+0

Non, c'est exactement la même chose pour les nœuds d'éléments. 'getNodeName' s'applique également aux éléments, attributs et autres types de nœuds. – manouti

1

Pour obtenir le tagname de l'élément:

Element tableElement = (Element) responseList.item(i); 
    String tagname = tableElement .getTagName(); 
+0

Pourriez-vous s'il vous plaît ajouter quelques explications, telles que * pourquoi * cela fonctionne-t-il, et qu'est-ce que le PO a fait? – amphetamachine