【发布时间】: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 一样。
【问题讨论】:
-
检查 element.getTagName: w3.org/2003/01/dom2-javadoc/org/w3c/dom/…
-
您是否要检索标记名?
-
是的,我正在尝试检索标记名