利用dom4j读写XML文件.如果想利用dom4j读写XML文件的话,那么必须得下载或导入dom4j的jar文件.如果找不到下载地址可以在我的附件中下载.
1.读XML文件例子:ReadXMLDemo.java
package day1; import java.io.*; import java.util.*; import org.dom4j.*; import org.dom4j.io.*; public class ReadXMLDemo { /** * @param args */ public static void main(String[] args) { ReadXMLDemo demo = new ReadXMLDemo(); demo.readXml("src/book.xml"); } public void readXml(String fileName){ SAXReader reader = new SAXReader();//构造解析器 try { //解析XML文件为Document对象 Document doc = reader.read(new File(fileName)); //由Document获得Root元素 Element root = doc.getRootElement(); List list = root.elements("武侠小说"); for(Iterator it = list.iterator();it.hasNext();){ Element novel = (Element)it.next(); String name = novel.elementText("书名"); System.out.println(name); List author = novel.elements("作者"); for(Iterator itau = author.iterator(); itau.hasNext();){ Element auth = (Element)itau.next(); System.out.println(auth.getData()); } String price = novel.elementText("价格"); System.out.println(price); String brief = novel.elementText("简介"); System.out.println(brief); System.out.println("------------------------"); } Iterator its = root.elementIterator("言情小说"); while(its.hasNext()){ Element element = (Element)its.next(); System.out.println(element.elementText("书名")); } } catch (DocumentException e) { e.printStackTrace(); } } }
book.xml文件如下:
<?xml version="1.0" encoding="gb2312"?> <!DOCTYPE 书籍列表 SYSTEM "book.dtd"> <书籍列表> <武侠小说 id="101" hot="true" language="en"> <书名><<笑傲江湖>></书名> <作者>金庸</作者> <作者>刘苍松</作者> <价格>$50</价格> <电话>12345678</电话> <简介>一本好书 <![CDATA[<<笑傲江湖>><<b>内容</b> 不做任何翻译的一段文字块]]> <![CDATA[ ]]> <!-- 这是一段注释 --> </简介> </武侠小说> <武侠小说 id="102"> <书名>流行蝴蝶剑</书名> <作者>古龙</作者> <价格>$45</价格> <邮箱>gulong@sina.com</邮箱> <简介>也是一本好书</简介> </武侠小说> <言情小说 id="103"> <书名>鬼吹灯</书名> <作者>暴龙</作者> <价格>$60</价格> <简介>好看的书</简介> </言情小说> <言情小说 id="104"> <书名>还珠格格</书名> <作者>琼瑶</作者> <价格>$5</价格> <简介>很不好看的书</简介> </言情小说> </书籍列表>
2.写入XML文件例子:WriteXmlDemo.java
package day1; import java.io.*; import java.util.*; import org.dom4j.*; import org.dom4j.io.*; public class WriteXmlDemo { /** * @param args */ public static void main(String[] args) { String[] courses = {"骑马","射箭","烹饪"}; String[] students = {"张三丰","郭靖","花木兰","任我行"}; WriteXmlDemo demo = new WriteXmlDemo(); demo.writeXml("src/students.xml", courses, students); } /** * 写xml文件 * @param fileName 目标文件名 * @param courses 课程列表 * @param students 学生列表 */ public void writeXml(String fileName, String[] courses, String [] students){ //生成空的Document Document doc = DocumentHelper.createDocument(); //生成根元素Record Element root = doc.addElement("Record"); //给根元素增加两个子元素:Head / Body Element headElmt = root.addElement("Head"); Element bodyElmt = root.addElement("Body"); //给Head元素增加两个子元素:Code / Exam headElmt.addElement("Code").setText("SD1106"); headElmt.addElement("Exam").setText("是"); buildBody(bodyElmt, courses, students); out(fileName, doc); } /** * 构造Body元素及其子元素 * @param bodyElmt Body元素 * @param courses 课程列表 * @param students 学生列表 */ private void buildBody(Element bodyElmt, String[] courses, String[] students) { //有多少门课程就有多少个CourseList //CourseList有两个子元素: CourseCode和Student for(String course : courses){ Element courseListElmt = bodyElmt.addElement("CourseList"); Element courseCodeElmt = courseListElmt.addElement("CourseCode"); courseCodeElmt.setText(course); Element studentElmt = courseListElmt.addElement("Student"); //每门课程都增加学生子元素,包括学生名字和成绩 //假设每个学生都选修了每门课程 buildStudent(studentElmt, students); } } /** * 构造学生子元素,包括学生名字和成绩 * @param studentElmt 学生元素 * @param students 学生列表 */ private void buildStudent(Element studentElmt, String[] students) { for(String student : students){ Element studentNameElmt = studentElmt.addElement("StudentName"); studentNameElmt.setText(student); studentNameElmt.addAttribute("Score", new Random().nextInt(100) + ""); } } /** * 将程序中构造的xml Document输出为操作系统文件. * @param fileName 输出的文件名 * @param doc 程序中构造的Xml文档 */ private void out(String fileName, Document doc) { try { //输出流 FileWriter writer = new FileWriter(fileName); //输出格式 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("gb2312"); //xml文件输出对象,需要两个参数:输出流 / 输出格式 XMLWriter xmlWriter = new XMLWriter(writer,format); //将doc文档写出 xmlWriter.write(doc); //关闭 xmlWriter.close(); } catch (IOException e) { e.printStackTrace(); } } }
students.xml文件如下:
<?xml version="1.0" encoding="gb2312"?> <Record> <Head> <Code>SD1106</Code> <Exam>是</Exam> </Head> <Body> <CourseList> <CourseCode>骑马</CourseCode> <Student> <StudentName Score="81">张三丰</StudentName> <StudentName Score="75">郭靖</StudentName> <StudentName Score="65">花木兰</StudentName> <StudentName Score="2">任我行</StudentName> </Student> </CourseList> <CourseList> <CourseCode>射箭</CourseCode> <Student> <StudentName Score="50">张三丰</StudentName> <StudentName Score="49">郭靖</StudentName> <StudentName Score="27">花木兰</StudentName> <StudentName Score="8">任我行</StudentName> </Student> </CourseList> <CourseList> <CourseCode>烹饪</CourseCode> <Student> <StudentName Score="31">张三丰</StudentName> <StudentName Score="75">郭靖</StudentName> <StudentName Score="38">花木兰</StudentName> <StudentName Score="11">任我行</StudentName> </Student> </CourseList> </Body> </Record>
相关推荐
ReadXml.rar
Unity3d读取XML文件,包括int,string,byte,char,float等数据类型的相互转化,以及tostring方法的使用
利用CMarup读取XML文件,获取多层次信息
本文实例讲述了asp.net使用DataSet的ReadXml读取XML文件及Stream流的方法。分享给大家供大家参考,具体如下: string strxml = <xml><m><a>1</a><b>2</b></m><m><a>11</a><b>22</b></m><m><a>111</a><b>222...
c++builder read xml file
There is a Read XML Demo to show Pull SAX Dom work.
flex读取xml文件的数据的三种方式及其比较
【ASP.NET编程知识】asp.net使用DataSet的ReadXml读取XML文件及Stream流的方法.docx
浩海网络多格式播放器V3.8.3(javascript)
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
QTableWidget读取XML配置文件及表格数据导出XML数据文件
本影片是Insus.net原创录制,asp.net技术方面的小影片,如有任何问题,可以联系本人. (本影片asp.net + C# DEMO)
ds.ReadXml(Server.MapPath(xml/song.xml)); //生成Xml文件 ds.WriteXml(Server.MapPath(xml/song_bak.xml)); 希望本文所述对大家的C#程序设计有所帮助。 您可能感兴趣的文章:C# 创建,读取,写入XML文件C#操作读取...
用xml_io_tools解析XML文件(包含xml_io_tools 工具包)
public class ReadXML { public static void main(String[] args) { try { // 得到DOM解析器的工厂实例 DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance(); // 从DOM工厂获得DOM解析器...
myDataSet.ReadXml("C:\myData.XML"); 结构 myDataSet.ReadXmlSchema("C:\mySchema.XML"); 写 myDataSet.WriteXml("C:\myData.XML"); 结构 myDataSet.WriteXmlSchema("C:\mySchema.XML"); 使用XmlDataDocument类...
if (cmbtemp [j] == cmbtemp [i]) { find = true; break; } } if (find ==false) { cmb .Items .Add (cmbtemp[i]); } } return true; } 使用举例: try { ds.ReadXml("urls.xml"); } catch { ...
C#读取XML导入数据库的程序,很实用的小程序