1.使用CDATA段:
<![CDATA[文本内容]]>
2.dom4j:
在sourceforge/projects/dom4j/下载,解压后,将jaxen-1.1-beta-6.jar和jaxen-1.1-beta-6.jar
文件复制到项目的lib目录下。
3.创建XML文档对象:
第一种方法:Document  document = ateDocument();
第二种方法: DocumentFactory  documentFactory = Instance();
Documenat document = ateDocument();
4.创建根节点:
方法: public static Element createElement(String name)
public void setRootElement()
如:    Document document = ateDocument();  //创建XML文档对象
Element  placard = ateElement("placard"); //创建普通节点
document.setRootElement(placard); //将placard设置为根节点
4.添加注释:
Document document = ateDocument();  //创建XML文档对象
Element  placard = ateElement("placard"); //创建普通节点
document.setRootElement(placard); //将placard设置为根节点
placard.addComment("这是根节点");  //添加注释
5.添加属性:
方法: public Element addAttribute(String name,String value)
例子: Document document = ateDocument();  //创建XML文档对象
Element  placard = ateElement("placard"); //创建普通节点
document.setRootElement(placard); //将placard设置为根节点
placard.setAttribute("version","2.0"); //添加属性
6.创建子节点:
方法: public Element addElement(String name); 
Document document = ateDocument();  //创建XML文档对象
Element  placard = ateElement("placard"); //创建普通节点
document.setRootElement(placard); //将placard设置为根节点
Element  description = placard.addElement("description");  //创建子节点description
7.创建节点的内容:
方法:public void setText(Stirng text)
Element description = placard.addElement("description"); //创建子节点
description.setText("内容"); //设置子节点的内容
8.设置编码:
方法: public void setEncoding(String encoding)
例子: OutputFormat format =  new OutputFormat(); //创建OutputFormat对象
format.setEncoding("GBK");        //设置写入流编码为GBK
9.设置输出格式:
方法:public static OutputFormat createPrettyPrint()
例子: OutputFormat format = atePrettyPrint(); //格式化为缩进方式
10.未设置输出格式的输出XML文档:
String fileURL = RealPath("/l");
XMLWriter writer = new XMLWriter(new FileWriter(fileURL));
writer.writer(document);
writer.close();
11.设置输出格式的输出XML文档:
OutputFormat format == new OutputFormat();
format.setEncoding("GBK");
String fileURL = RealPath("l");   
XMLWriter writer = new XMLWriter(new XMLWriter(new FileWriter(fileURL),format));
writer.writer(document);
writer.close();
12.将XML文件输出控制台:
OutputFormat format == atePrettyPrint();
format.setEncoding("GBK");
String fileURL = RealPath("l"); 
XMLWriter writer = new XMLWriter(System.out,format);
writer.writer(document);
或:
try {
// 创建OutputFormat
OutputFormat format = atePrettyPrint();
// 创建XMLWriter
XMLWriter xmlWriter = new XMLWriter(new OutputStreamWriter(System.out),format);
// 输出xml文档
xmlWriter.write(document);
xmlWriter.flush();
xmlWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
13.将XML文件输出浏览器:
XMLWriter writer = new XMLWriter(out,format);
writer.writer(document); //(但此时不可以用XMLWrite对象的close方法)
14.释放资源:
document.clearContent();
-------------------------------------------------------------------------------------------------------
解析XML:
1. 构建XML文档对象:
String  fileURL= RealPath(“/l”);
SAXReader  reader= new SAXReader();
Document  ad(new File(fileURL));
2. 获取根节点:
Element  placard= RootElement();  //获取根节点
3. 获取子节点:
第一种方法:(通常用于获取根节点中节点名唯一的一个子节点)
Element  placard = RootElement();
Element  description=placard.element(“description”); //获取description节点
第二种方法:(通常用于获取根节点中节点多个并列的节点)
Element  root = RootElement(); //获取根节点
List  list_item= root.elements(“info”); //获取根节点下的名为info的多个子节点
4.获取节点的值(返回的值属于String类型):
String description = placard.element("description").getText();  //获取节点placard下的节点description值
-------------------------------------------------------------------------------------------------------
修改XML:
修改XML文档
1. 利用selectSingleNode方法获取XML文档的根节点placard 的ID属性为1的子节点info的代码:
第一种:
org.dom4j.Node  item=placard.selectSinggleNoe(“/placard/info[@id=’1’]”);
第二种:
利用selectNodes()方法获取XML文档的根节点placard的子节点所有名为info的代码
List  list=placard.selectNodes(“/placard/info”);
删除子节点
Element  item=(Element)placard.selectSingleNode(“/placard/info[@id=’
1’]”);
If(null!=item){
}java xml是什么
2.批量删除子节点:
3.修改节点的例子:
public int ModiXMLFile(String filename,String newfilename){
int returnValue = 0;
try{
SAXReader saxReader = new SAXReader(); 
Document document = ad(new File(filename));
/** 修改内容之一: 如果book节点中show参数的内容为yes,则修改成no */
/** 先用xpath查对象 */
List list = document.selectNodes("/books/book/@show" ); 
Iterator iter = list.iterator();
while(iter.hasNext()){
Attribute attribute = (();
Value().equals("yes")){
attribute.setValue("no");
}
另外知识点
1. 获取节点名为info的数量:  placard.element(“info”).size()
2. 获取第一个info节点的内容:
List  list_item=placard.element(“info”);
Element  item=(Element)(0);
Item.element(“title”).getText();  //获取info节点的第一个title节点值。
3. String fileURL = RealPath("/l");
File file = new File(fileURL);
if(!ists) { //如果文件/l,创建它
}
4.servlet跳到xml文件:
5.List list_item = placard.elements("info");
if(list_item.size()>0) {
for(int i=0;i<list_item.size();i++) {
Element item = (Element)(i);
id = Integer.parseInt(item.attribute("id").getValue());  //获取id属性
}
}
6.要引入的类:
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
import java.io.IOException;
import java.io.OutputStream;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。