如何在Java中解析XML文件并检查每个元素是否有子元素?
我有一个如下所示的XML文件:如何在Java中解析XML文件并检查每个元素是否有子元素?,java,xml,xml-parsing,Java,Xml,Xml Parsing,我有一个如下所示的XML文件: <customers> <customer> <name>XXX</name> <address>Nagar</address> <number> <num1>123</num1> <num2>456</num2>
<customers>
<customer>
<name>XXX</name>
<address>Nagar</address>
<number>
<num1>123</num1>
<num2>456</num2>
</number>
</customer>
<customer>
<name>YYY</name>
<address>Nagar</address>
<number>
<num1>789</num1>
<num2>012</num2>
</number>
</customer>
</customers>
我用DOM来做这个。以下给出代码:
NodeList nodeList = doc.getElementsByTagName("*");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
System.out.println(node.getNodeName()+" = "+node.getChildNodes());
}
}
你能帮我一下吗。你的循环中需要另一个循环来遍历子循环 这项工作:
NodeList nodeList = document.getElementsByTagName("*");
for (int i = 0; i < nodeList.getLength(); i++)
{
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE)
{
Element element=(Element) node;
System.out.print(element.getNodeName()+" = ");
boolean is_first_child=true;
// CHILDS
NodeList nodechilds=node.getChildNodes();
for (int j = 0; j < nodechilds.getLength(); j++)
{
Node a_child = nodechilds.item(j);
if (a_child.getNodeType() == Node.ELEMENT_NODE)
{
if (!is_first_child) System.out.print (",");
System.out.print (a_child.getNodeName());
is_first_child=false;
}
}
if (is_first_child) System.out.print ("null");
System.out.println();
}
}
NodeList NodeList=document.getElementsByTagName(“*”);
for(int i=0;i
customers = [customers: null]
customer = [customer: null]
name = [name: null]
address = [address: null]
number = [number: null]
num1 = [num1: null]
num2 = [num2: null]
customer = [customer: null]
name = [name: null]
address = [address: null]
number = [number: null]
num1 = [num1: null]
num2 = [num2: null]
NodeList nodeList = document.getElementsByTagName("*");
for (int i = 0; i < nodeList.getLength(); i++)
{
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE)
{
Element element=(Element) node;
System.out.print(element.getNodeName()+" = ");
boolean is_first_child=true;
// CHILDS
NodeList nodechilds=node.getChildNodes();
for (int j = 0; j < nodechilds.getLength(); j++)
{
Node a_child = nodechilds.item(j);
if (a_child.getNodeType() == Node.ELEMENT_NODE)
{
if (!is_first_child) System.out.print (",");
System.out.print (a_child.getNodeName());
is_first_child=false;
}
}
if (is_first_child) System.out.print ("null");
System.out.println();
}
}