java将元素转换为字符串

时间:2014-08-29 19:28:14

标签: java xml document

我希望只获取标签名称,而不是它的孩子。

我有一个像这样的xml:

  <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>

我正在尝试将xml动态保存到适当的表和列名称中。所以,我想提取第一个元素是什么,并将其分配给表名变量,然后将它作为列。

到目前为止我正在做的事情:

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

这样我只能获取子节点中的值。有没有办法获得Element标签的名称?就像我想从Document对象中提取值RESULT一样。

2 个答案:

答案 0 :(得分:1)

在DOM中,使用Node.getNodeName()检索元素名称。

示例:

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

答案 1 :(得分:1)

获取元素的标记名:

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