我是java编程的新手,我刚刚学会了如何解析xml文件。但我不知道如何解析这个xml文件。请帮我一个代码,了解如何获取标签day1及其内部标签order1,order2
<RoutePlan>
<day1>
<Order1>
<customer> XYZ</customer>
<address> INDIA </address>
<data> 10-10-2011 </data>
<time> 9.30 A.M </time>
</Order1>
<Order2>
<customer> ABC </customer>
<address> US </address>
<data> 10-10-2011 </data>
<time> 10.30 A.M </time>
</Order2>
</day1>
我编写了以下代码来检索。但我只是按顺序获取数据而不是顺序2
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(file);
document.getDocumentElement().normalize();
System.out.println("Root Element: "+document.getDocumentElement().getNodeName());
NodeList node = document.getElementsByTagName("day1");
for(int i=0;i<node.getLength();i++){
Node firstNode = node.item(i);
Element element = (Element) firstNode;
NodeList customer = element.getElementsByTagName("customer");
Element customerElement = (Element) customer.item(0);
NodeList firstName = customerElement.getChildNodes();
System.out.println("Name: "+((firstName.item(0).getNodeValue())));
NodeList address = element.getElementsByTagName("address");
Element customerAddress = (Element) address.item(0);
NodeList addName = customerAddress.getChildNodes();
System.out.println("Address: "+((addName.item(0).getNodeValue())));
NodeList date = element.getElementsByTagName("date");
Element customerdate = (Element) date.item(0);
NodeList dateN = customerdate.getChildNodes();
System.out.println("Address: "+((dateN.item(0).getNodeValue())));
NodeList time = element.getElementsByTagName("time");
Element customertime = (Element) time.item(0);
NodeList Ntime = customertime.getChildNodes();
System.out.println("Time: "+((Ntime.item(0).getNodeValue())));
}
答案 0 :(得分:4)
我不能给你一个,而不是两个,但是三个方向来解析这个XML(还有更多,但让我们说它们是最常见的):
根据XML文档的大小来判断,我可能会选择DOM解析,这将是最容易实现和使用的(但如果你必须处理更大的文件,请看看SAX阅读 - 仅用于阅读和编写的操作和StAX)。
答案 1 :(得分:0)
您只获得“Order1”元素的原因是:
使用DOM时,请准备好旋转多个循环以检索数据。此外,在表示模式时,您有点误导。您实际上不需要将“元素”命名为“day1”/“order1”等。在XML中,可以通过具有多个“day”或“order”元素来简单地表达,这些元素反过来自动强制执行排序。示例XML如下所示:
<route-plan>
<day>
<order>
<something>
</order>
</day>
<day>
<order>
<something>
</order>
</day>
</route-plan>
现在检索“day”元素很简单: