用做示例的XML文件如下:exampleA.xmlmicrosoft-com:Office:office" />
<?xml version="1.0" encoding="GB2312"?>
王五
2002-6-6
50.0
add
sf234="123456" />
add
XML在Java中的应用
李四
2002-9-16
<?xml-stylesheet href="bookList.html.xsl" type="text/xsl"?>
接下来就是在JSP中来调用这两个javabean实现对XML的操作,jsp文件的代码如下:
dom.*" %>
//xml文件的路径(绝对路径)
String fileName="exampleA.xml";
String aa=getservletContext().getRealPath("/")+"jdom";
String trace=aa+fileName;
//初始化读写的bean
XML.readXML readXmlBean = new XML.readXML();
XML.writeXML writeXmlBean = new XML.writeXML();
//从xml文件中得到相关数据
Document doc;
readXmlBean.readXML(trace);
doc=readXmlBean.getXmlDoc();
//加入一条处理指令
ProcessingInstruction pi = new ProcessingInstruction
("xml-stylesheet","href="bookList.html.xsl" type="text/xsl"");
doc.addContent(pi);
//得到根元素
Element root = doc.getRootElement();
//得到根元素所有子元素的集合
java.util.List books = root.getChildren();
//得到第一个book元素
Element book = (Element)books.get(0);
//为第一本书添加一条属性
Attribute a = new Attribute("hot1","true");
book.setAttribute(a);
//得到指定的字元素
Element author = book.getChild("author");
//将作者改为王五
author.setText("王五");
//得到指定的字元素
Element price = book.getChild("price");
//修改价格
price.setText(Float.toString(50.0f));
//叠代显示所有元素
Iterator it = books.iterator();
while (it.hasNext()) {
Element e = (Element) it.next();
out.println(e.getChild("name").getTextTrim()+"
");
List priceElements = e.getChildren("price");
Iterator it2 = priceElements.iterator();
while (it2.hasNext()) {
Element pe = (Element) it2.next();
out.println(pe.getAttributeValue("currency")+"
");
out.println(pe.getAttributeValue("amount")+"
");
}
}
//指令操作
String target = pi.getTarget();
String data = pi.getData();
String type = pi.getValue("type");
out.println(target+"
"+data+"
"+type+"
");
//删除属性
book.removeAttribute("hot");
//删除指令
doc.removeContent(pi);
//新增节点
Element add = new Element("add");
a= new Attribute("sku","123456");
add.setAttribute(a);
add.addContent("add");
book.addContent(add);
//没有内容只有属性的节点
Element attr = new Element("attribute");
a= new Attribute("sku","123456");
attr.setAttribute(a);
a= new Attribute("sf234","123456");
attr.setAttribute(a);
book.addContent(attr);
//删除节点
book.removeContent(attr);
book.removeContent(add);
//写入XML文件
writeXmlBean.writeXML(doc,trace);
%>
这个例子里包括了一般的增加、删除、修改节点和属性和指令以及显示XML数据等一般的XML文件操作。如果只是纯粹的显示数据的话建议把所有的取数据操作到放到javabean里去,jsp页面只是显示一下结果,这样可以提高运行的速度,减少出错的概率:)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-984588/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10752019/viewspace-984588/