xml解析与创建

看了一下dom和dom4j,感觉这两者在解析方面差不多,但是dom4j要比dom简单一些,在创建一个xml文件,dom4j要比dom简单太多了,毕竟人家都帮我们封装好了。

dom是不需要加包的,而dom4j要加一个dom4j-1.6.1.jar这个包。具体的下载路径是:http://www.dom4j.org/

下面我说一下这两者如何解析和创建,以及他们的区别。xml个人觉得是蛮重要的,因为它是可扩展的,怎么说呢,xml也许会代替html。

dom的解析的代码如下:

private static void read() {

 File file = new File("src/xml/student.xml");

try {

DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

Document doc = builder.parse(file);

NodeList node = doc.getChildNodes();

 for (int i = 0; i < node.getLength(); i++)

{

Element e = (Element) node.item(i);

// System.out.println(e.getNodeName());

 boolean flag = e.hasChildNodes(); i

f (flag) { NodeList list = e.getChildNodes();

for (int j = 0; j < list.getLength(); j++) {

 e = (Element) list.item(i);

System.out.println(e.getNodeName());

}

}

}

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

 

 前几步和dom解析是一样的,通过工厂一步步得到document。再通过document来创建元素,创建的元素可以给他们增加属性,即setAttribute()。

  student.setIdAttribute("id", true);把这个setIdAttribute设置为true起到的作用是可以在解析时通过document.getElementById,默认为false,也就是说在没设置的情况下,解析通过byId是拿不到那个属性值的,这个和js里面的"document.getElementById()"还是有点区别的。

创建完属性,把他们的依赖关系注入,也是说谁是谁的上级。。

最后通过Transformer这个类把document的东西运到file里面去。。得到Transformer还是得用工厂,确实麻烦。。

dom4j的创建xml可要简单多了,它是借助了FileWriter写入文件。

代码如下:

private static void writer() {

 Document doc=DocumentHelper.createDocument();

Element root=doc.addElement("class");

Element student=root.addElement("student");

Element name=student.addElement("name");

Element age=student.addElement("age");

student.addAttribute("id", "001");

/---给文本内容赋值 name.addText("zhangsan"); age.addText("20");

//---把document保存到文件里面 try { File file=new File("src/xml/a.xml");

FileWriter fw=new FileWriter(file);//把file放到输出流里面。。。

doc.write(fw); fw.flush(); //doc借助于FileWriter写入文件 fw.close(); } catch (IOException e) { e.printStackTrace(); } }

它是通过DocumentHelper来得到document,再把file放到流里面,通过document.writer()方法,把document里面的东西放到file文件里面去。很是简单!

XML在未来会显得很重要,所以解析和创建变得很是重要。。在ajax里面,可以传一个xml过去,也可以传一个xml回来,当然这个例子我没写过,什么时候有时间了写一下。

下面推荐一篇dom4j解析的文章:http://www.java3z.com/cwbwebhome/article/article5/5828.html?id=1542

它里面封装了一个HashMap,把值都存放到hashmap里面去。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值