我希望只获取标签名称,而不是它的孩子。
我有一个像这样的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一样。
答案 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();