Java中xml文件解析

</pre><pre name="code" class="html"><pre name="code" class="plain">
 

在java中解析xml文件,想想也是一个面试加分项,于是乎有必要来一篇博客记录一波,详情如下:
这是我用到的一个简单的例子,写成xml格式:


<?xml version="1.0" encoding="UTF-8"?> 
<books>
	<story>
		<book id="1">
			<name>红楼梦</name>
			<author>曹雪芹</author>
			<price>56.6</price>
		</book>
		<book id="2">
			<name>西游记</name>
			<author>吴承恩</author>
			<price>82.6</price>
		</book>
	</story>	
</books>

然后在Java里对其进行解析:

public class DealXml {

	public static void main(String[] args) {
		try {
			//获取Factory对象,DocumentBuilderFactory是抽象类没有new方法
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			//通过factory创建DocumentBuilder
			DocumentBuilder builder = factory.newDocumentBuilder();
			//用File流获取xml文件路径,parse方法进行xml文件解析并用document封装
			Document document = builder.parse(new File("f:/note.xml"));
			//解析出来的document对象获得其根节点并打印
			Element element = document.getDocumentElement();
			System.out.println("root:" + element);
			//通过“book”标签在根节点内查找类似子节点
			NodeList list = element.getElementsByTagName("book");
			NodeList list1 = element.getElementsByTagName("story");
			//遍历子节点
			for (int i = 0; i < list.getLength(); i++) {
				System.out.println("----------------------------");
				//在根节点中通过标签来查找对应的数据
				Element e=(Element) list.item(i);
				System.out.println("e=" + e);
				
				Element e2=(Element) element.getElementsByTagName("book").item(i);
				System.out.println("id=" + e2.getAttribute("id"));
				
				Element e3=(Element) element.getElementsByTagName("name").item(i);
				System.out.println(e3.getNodeName() + e3.getTextContent());
				
				Element e4=(Element) element.getElementsByTagName("author").item(i);
				System.out.println(e4.getNodeName() + e4.getTextContent());
				
				Element e5=(Element) element.getElementsByTagName("price").item(i);
				System.out.println(e5.getNodeName() + e5.getTextContent());
				
				Element e6=(Element) list1.item(i);
				System.out.println("e6=" + e6);
			}

		} catch (ParserConfigurationException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}


最后,可以得到如下输出结果:






大概说明一下,根节点是xml文件里的book,没有属性所以是null,story是最外层一个标签,也只有一个,所以第二个直接是null并没有查到story,然后其他的属性都是根据book标签来查到并添加打印的,基本上就完成了简单的xml解析了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值