我是xml文档的新手。我需要提取上面的xml并将其放在数组的集合中。
<billingOrderSummary>
<Order OrderNo="1">
<Name>Teleflora's Fall in Love - Premium</Name>
<Img>/Images/products/SW0_372709.jpg</Img>
<EditItem>detail_id=32734269&frompage=payment&checkoutflag=2</EditItem>
<DeleteItem>ReloadOrderdetails(32734269)</DeleteItem>
<Item>
<Name>price</Name>
<Value>Â $59.95</Value>
</Item>
<Item>
<Name>Service Fee:</Name>
<Value>Â $10.00</Value>
</Item>
<Item>
<Name>deliver on 8/31/2013 to</Name>
<Value>Richard Timbo's Test Store</Value>
<Value>1 Main StÂ
San Jose, CA10126
United States</Value>
<Value>978-978-9789</Value>
</Item>
<Item>
<Name>card type</Name>
<Value>Father's Day</Value>
</Item>
<Item>
<Name>message:</Name>
<Value>gtreg</Value>
<Value>gfdg</Value>
</Item>
</Order>
</billingOrderSummary>
这是我尝试的代码。
NodeList nodeList = gotoBillingPage.getElementsByTagName('Order');
print 'nodeList'+ nodeList
for (int temp = 0; temp < nodeList.getLength(); temp++) {
Node nNode = nodeList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Staff id : " + eElement.getAttribute("OrderNo"));
System.out.println("First Name : " + eElement.getElementsByTagName("Item").item(0).getTextContent());
int item = eElement.getElementsByTagName("Item").getLength();
在这里,我知道要提取每个孩子。
注意:在最后我有一个孩子和两个孩子。
我也知道如何提取这些价值。
任何人都可以帮助我。
答案 0 :(得分:0)
尝试以下代码来提取所有Item节点的所有子节点。
NodeList itemElements = document.getElementsByTagName("item");
for (int i = 0; i < itemElements.getLength(); i++)
{
Element itemElement = (Element) itemElements.item(i);
NodeList childNodes = itemElement.getChildNodes();
for (int j = 0; j < childNodes.getLength(); j++)
{
Node childNode = childNodes.item(j);
if (!(childNode instanceof Element)) {
continue;
}
Element childElement = (Element) childNode;
... your comes code here ...
}
}