【问题标题】:How to get the values from a xml using org.w3c.dom.Document;如何使用 org.w3c.dom.Document 从 xml 中获取值;
【发布时间】:2013-09-01 10:28:50
【问题描述】:

我是 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();

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

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

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

谁能帮帮我。

【问题讨论】:

  • 那么您到底想知道什么?此外,您的代码似乎不完整。你能修好吗?这可能会让您的问题更容易理解。
  • 我知道如何提取每个 节点的子节点

标签: java xml xmldocument


【解决方案1】:

尝试以下代码提取所有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 ...
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-07
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多