【问题标题】:java Convert Element to stringjava 将元素转换为字符串
【发布时间】:2015-02-11 07:24:35
【问题描述】:

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

我有一个这样的 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;
                    }
                }
            }
        }
    }
}

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

【问题讨论】:

标签: java xml document


【解决方案1】:

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

例子:

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

【讨论】:

  • getTagName 有区别吗?
  • 不,元素节点完全相同。 getNodeName 也适用于元素、属性和其他节点类型。
【解决方案2】:

获取元素的标签名:

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

【讨论】:

  • 能否请您添加一些解释,例如为什么这有效,以及 OP 做错了什么?
猜你喜欢
  • 2013-04-03
  • 2014-08-30
  • 2012-12-02
  • 2021-04-27
  • 2013-03-03
  • 2017-01-07
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多