suzhou111 2009-08-26 15:58
浏览 160
已采纳

java读取xml

import java.io.File;
import java.io.*;
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class test
{
public test()
{
try
{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
File file=new File("test.xml");
Document doc=db.parse(file);
NodeList products=doc.getElementsByTagName("product");
Element productElement;
for (int i = 0; i < products.getLength(); i++)
{
productElement=(Element)products.item(i);
String id=productElement.getAttribute("id");
System.out.println("产品编号: "+id);
String name=doc.getElementsByTagName("name").item(i).getFirstChild().getNodeValue();
System.out.println("产品名称: "+name);
String price=doc.getElementsByTagName("price").item(i).getFirstChild().getNodeValue();
System.out.println("产品价格: "+price);
System.out.println("--------------------------------------");
}

}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
new test();
}
}

给位大虾 能帮我解释一下这段代码吗? 我在网上找的 我很不理解

  • 写回答

5条回答 默认 最新

  • iteye_1149 2009-08-26 16:14
    关注

    [code="java"]import java.io.File;
    import java.io.*;
    import org.w3c.dom.Document;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;

    public class test
    {
    public test()
    {
    try
    {
    DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); //获取一个DocumentBuilderFactory的实例
    DocumentBuilder db=dbf.newDocumentBuilder(); //使用工厂生成一个DocumentBuilder
    File file=new File("test.xml"); //打开文件,获得句柄
    Document doc=db.parse(file); //使用dom解析xml文件
    NodeList products=doc.getElementsByTagName("product"); //将所有节点名为product的节点取出
    Element productElement; //元素对象,声明
    for (int i = 0; i < products.getLength(); i++) //循环处理对象
    {
    productElement=(Element)products.item(i); //将每个Product赋值给元素
    String id=productElement.getAttribute("id"); //取得元素的属性“id” ……取得这样的a
    System.out.println("产品编号: "+id);
    String name=doc.getElementsByTagName("name").item(i).getFirstChild().getNodeValue(); //取得第i个节点的第一个字节点,取得节点中的值book取得这样的book
    System.out.println("产品名称: "+name);
    String price=doc.getElementsByTagName("price").item(i).getFirstChild().getNodeValue();
    System.out.println("产品价格: "+price);
    System.out.println("--------------------------------------");
    }

    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    }
    public static void main(String[] args)
    {
    new test();
    }
    } [/code]
    学习Dom的时候最好把要解析的文件打开看,这样对比看很清晰。记得要解析的xml文件格式搞的规整一些。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号