Java_DOM解析XML

<?xml version="1.0" encoding="UTF-8"?>
<Books>textElement1
    <Book id="1">
        <name>Java Thinking</name>
        <price>100.0</price>
    </Book>
textElement2
    <Book id="2">
        <name>C++ Thinking</name>
        <price>200.0</price>
    </Book>
textElement3
</Books>


 

	File file=new File("D:\\sample.xml");
	DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
		
	DocumentBuilder builder=factory.newDocumentBuilder();
	Document doc=builder.parse(file);
	NodeList list=doc.getElementsByTagName("Book");
	System.out.println(doc.getDocumentElement().getNodeName());
			
	System.out.println(doc.getDocumentElement().getChildNodes().getLength());
	for(int i=0;i<doc.getDocumentElement().getChildNodes().getLength();i++){
	        System.out.println("name:"+doc.getDocumentElement().getChildNodes().item(i).getNodeName());
		System.out.println("value:"+doc.getDocumentElement().getChildNodes().item(i).getNodeValue());
	}


运行结果:

Books
5
name:#text
value:textElement1
   
name:Book
value:null


name:#text
value:
textElement2
   
name:Book
value:null


name:#text
value:
textElement3

 

为什么根元素(文档元素)有5个子节点呢?

    第一个节点:<Books> <Book>两个节点之间的文本元素

    第二个节点:就是<Book>元素节点

    第三个节点:</Book> <Book>之间的文本节点

    第四个节点:<Book>元素节点

    第五个节点:</Book> </Books>之间的文本节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值