㈠ 在java web項目中,如果用dom4j來操作xml文件,應該怎麼寫SAXReader.read(「路徑」),這個路徑該怎麼寫
可以參考 :
package com.zuxia.dom4j;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
/**
*
* 使用dom4j解析xml
*
* 1. 創建解析器
*
* 2. 創建文檔對象Document
*
* 3. 獲取根節點
*
*/
public class Dom4jParseXML {
public static void main(String[] args) {
//1. 創建解析器
SAXReader saxreader = new SAXReader();
Document doc = null;
try {
//2. 創建文檔對象Document
doc = saxreader.read(new File("src/studentinfo.xml"));
} catch (Exception e) {
System.out.println("讀取xml文件異常!");
}
//3. 獲取根節點
Element root = doc.getRootElement();
//4. 獲取元素
Iterator<Element> iter = root.elementIterator();
while(iter.hasNext()){
Element student = iter.next();
System.out.println("學號:"+student.attributeValue("stuno")+"\t姓名:"+student.elementText("name"));
}
//提示用戶添加新的數據
Scanner sc = new Scanner(System.in);
System.out.println("請輸入學號:");
String stuno = sc.nextLine();
System.out.println("請輸入姓名:");
String name = sc.nextLine();
System.out.println("請輸入年齡:");
String age = sc.nextLine();
//將數據添加在Document中
Element student = root.addElement("student");
student.addAttribute("stuno", stuno);
student.addElement("name").addText(name);
student.addElement("age").addText(age);
//3. 設置格式
OutputFormat format = OutputFormat.createCompactFormat();
format.setIndentSize(4);
format.setNewlines(true);
try {
//4. 保存xml文件
XMLWriter out = new XMLWriter(new FileOutputStream("src/studentinfo.xml"),format);
out.write(doc);
System.out.println("ok!!!");
} catch (Exception e) {
System.out.println("失敗!");
}
System.out.println("完成了!");
}
}
㈡ JAVA dom4j怎樣將雙引號 寫入XML時為" 表示
我印象中是<不能在xml里直接存 如果數據是在web上使用 要存的話可以用<的轉回義字元<"可以答用轉移字元" 如果是程序中用的話可以自己定義個轉換的標簽 或者 可以使用cdata 以"<![CDATA[" 標記開始,以"]]>"標記結束 這個可以直接保存 中間的內容不會被解析
㈢ JAVA中如何用DOM4J將一個字元串解析成XML格式
用:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document doc = factory.newDocumentBuilder().parse(new ByteArrayInputStream(xmlStr.getBytes()));
試試。