XML与java的应用

对于XML处理方面,W3C有两种解决方法:

(1)DOM(Document Object Model):

(2)SAX(Simple API for XML)

DOM介绍:

先将xml文档解析成dom树,并放入内存,能够随机访问任意节点。

缺点:因为需要放入内存操作,所以对文件大小有限制。

DOM位于org.w3c.dom包中。

DOM有3个核心的接口:

(1)Document:是整个文档的根结点。只有取得了Document结点,才能够对文档操作。

常用方法:

(1)Element elem = document.createElement("elem"); //创建一个结点

(2)Attribute attr = document.createAttribute("attr"); //创建一个属性

(3)Text t = document.createTextNode("text"); //创建一个文本节点

(4)NodeList list = document.getElementByTagName("..."); //寻找某个结点

(2)Node:DOM树是由结点组成,因此结点是很重要的。

常用方法:

(1)appendChild(Node child); //添加子节点

(2)getFirstChild(); //获得第一个子节点

(3)getNodeValue(); //得到节点的值

(4)hasChildNodes(); //是否还有子节点

(3)NodeList:是由Node组成的一个List。

常用方法:

(1)item(int x); //获得第几个节点

(2)getLength(); //获得list的长度

如果要获得Document对象,需要:

------------------------------------------------------------

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

Document doc = builder.parse("....");获得doc

------------------------------------------------------------

生成xml文件方法:需要TransformerFactory,Transformer,StreamResult,DOMSource。

方法:

Document doc = builder.newDocument();

生成DOM树

StreamResult result = new StreamResult(new File("..."));

DOMSource source = new DOMSource(doc);

TransformerFactory factory = TransformerFactory.newInstance();

Transformer t = factory.newTransformer();

t.transform(source,result);即可

SAX介绍:

只能读取,不能生成或改变,并且只能遍历。

缺点:只能读取。

XML解析工具:

(1)DOM4J

DOM4J是一个XML操作的包,为了提供给用户更简便的操作XML。

以下是生成一个XML文件的代码:

Document doc = DocumentHelper.createDocument();

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

Element first = name.addElement("firstname");

Element second = name.addElement("secondname");

first.setText("xia");

second.setText("second");

OutputFormat format = OutputFormat.createPrettyPrint();

format.setEncoding("gb2312");

XMLWriter writer = new XMLWriter(new FileOutputStream("out.xml"),format);

writer.write(doc);

writer.close();

以下是读取一个XML文件的代码:

SAXReader reader = new SAXReader();

Document doc = reader.read(new File("out.xml"));

Element root = doc.getRootElement();

Iterator iter = root.elementIterator();

Element elem = (Element)iter.next();

String str = elem.elementText("first");

(2)JDOM:也是一个非常好的解析工具,但是性能上比DOM4J差了不少,所以不用。

Javascript中运用DOM:把html想象成一个DOM树。

这里通过id进行查找。

var elem = document.getElementById("id");

elem.innerHTML

生成一个<input type = "button" value = "button"/>过程:

var form = document.getElementById("form");//获得表单节点

Element button = document.createElement("input");//创建一个节点

button.setAttribute("type","button");//设置属性

button.setAttribute("value","button");//设置属性

form.appendChild(button);//添加form的子节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值