能夠操作xml的api還是挺多的,DOM也是可以的,不過(guò)在此記錄下dom4j的使用,感覺(jué)確實(shí)挺方便的 所需jar包官網(wǎng)地址:http://www./dom4j-1.6.1/
dom4j相關(guān)的重要類(lèi)和方法
SAXReader,用于讀取外部的xml文件,實(shí)例 SAXReader reader=new SAXReader(); Document document=reader.read(new File("f:/test.xml"));
SAXReader 的read方法可以讀取外部的xml文件,返回一個(gè)Document 對(duì)象
Document,dom4j的一個(gè)文檔對(duì)象,用于操作xml文檔的結(jié)構(gòu),可通過(guò)調(diào)用它的getRootElement()方法獲取根元素Element對(duì)象
Document document=reader.read(new File("f:/test.xml"));
Element root=document.getRootElement();
Element,元素對(duì)象,它的方法還是挺多的,是主要操作對(duì)象。方法如下: element("ElementName"),方法可以獲取該元素標(biāo)簽中的名稱(chēng)為ElementName的子Element元素對(duì)象
Element root=document.getRootElement(); Element element=root.element("紅樓夢(mèng)");
attribute("id") ,獲取屬性為id的Attribute對(duì)象
Attribute attr=element.attribute("id");
addElement("ElementName"),添加一個(gè)新的子Element標(biāo)簽,名字為ElementName addText(""),為element對(duì)象添加 text值
Element e=element.addElement("朝代"); e.addText("唐朝");
remove(Attribute),移除一個(gè)指定的Attribute對(duì)象 Element element=root.element("紅樓夢(mèng)"); Attribute attr=element.attribute("id"); element.remove(attr);
addAttribute("name","value"),添加一個(gè)新的屬性 element.addAttribute("作者", "wang");
addCDATA("")添加一段不可解析的字符 element.addCDATA("紅樓夢(mèng)是中國(guó)四大名著之一");
Attribute,屬相對(duì)象,操作屬性值,通過(guò)Element對(duì)象的Attribute("")方法獲取
XMLWriter,用于輸出xml到指定文件
OutputFormat format = OutputFormat.createPrettyPrint(); //格式化輸出文件
實(shí)例代碼 test.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?> <四大名著> <西游記 id="x001"> <作者>吳承恩1</作者> <作者>吳承恩2</作者> <朝代>明朝</朝代> </西游記> <紅樓夢(mèng) id="x002"> <作者>曹雪芹</作者> </紅樓夢(mèng)> </四大名著>
執(zhí)行代碼如下: package util; import java.io.File; import java.io.FileOutputStream; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class XmlUtil { public static void main(String[] args) { parseXml(); } public static String parseXml(){ String xmlResult = null; SAXReader reader=new SAXReader(); try { Document document=reader.read(new File("f:/test.xml")); Element root=document.getRootElement(); Element element=root.element("紅樓夢(mèng)"); Attribute attr=element.attribute("id"); element.remove(attr); element.addAttribute("作者", "wang"); Element e=element.addElement("朝代"); e.addText("清朝"); element.addCDATA("紅樓夢(mèng)是中國(guó)四大名著之一"); OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("f:/test2.xml")),format); xmlWriter.write(document); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return xmlResult; } }
執(zhí)行后,生成了test2.xml文件,內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?> <四大名著> <西游記 id="x001"> <作者>吳承恩1</作者> <作者>吳承恩2</作者> <朝代>明朝</朝代> </西游記> <紅樓夢(mèng) 作者="wang"> <作者>曹雪芹</作者> <朝代>清朝</朝代><![CDATA[紅樓夢(mèng)是中國(guó)四大名住著之一]]> </紅樓夢(mèng)> </四大名著>
|
|
來(lái)自: Bladexu的文庫(kù) > 《技術(shù)文摘》