如何使用org.w3c.dom.Document从xml获取值;

时间:2013-08-29 05:59:39

标签: java xml xmldocument

我是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&amp;frompage=payment&amp;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 &#13;
                     San Jose, CA10126&#13;
                      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();

在这里,我知道要提取每个孩子。

注意:在最后我有一个孩子和两个孩子。

我也知道如何提取这些价值。

任何人都可以帮助我。

1 个答案:

答案 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 ...
    }
}