黑马程序员技术交流社区

标题: DOM4j解析xml的原理是什么?以下xml如何通过解析? [打印本页]

作者: Mr.Z.Lee    时间: 2013-11-4 10:17
标题: DOM4j解析xml的原理是什么?以下xml如何通过解析?
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <catalog>
  3. <!--An XML catalog-->
  4. <?target instruction?>
  5.   <journal title="XML Zone"
  6.                    publisher="IBM developerWorks">
  7. <article level="Introductory" date="October-2002">
  8. <title>Create flexible and extensible XML schemas</title>
  9. <author>
  10.      <firstname>Ayesha</firstname>
  11.      <lastname>Malik</lastname>
  12. </author>
  13.   </article>
  14.   </journal>
  15. </catalog>

复制代码

作者: ~﹏~    时间: 2013-11-5 21:00
应该是使用数据结构中的栈(Stack)的,压入标签,取出标签。。。
  1. import org.dom4j.Document;
  2. import org.dom4j.DocumentHelper;
  3. import org.dom4j.Element;
  4. import org.dom4j.io.XMLWriter;
  5. import java.io.*;
  6. public class XmlDom4J{
  7.         public void generateDocument(){
  8.                  Document document = DocumentHelper.createDocument();//使用 DocumentHelper 类创建一个文档实例
  9.              Element catalogElement = document.addElement("catalog");//使用 addElement() 方法创建根元素 catalog
  10.              catalogElement.addComment("An XML Catalog");//在 catalog 元素中使用 addComment() 方法添加注释“An XML catalog”
  11.              catalogElement.addProcessingInstruction("target","text");//在 catalog 元素中使用 addProcessingInstruction() 方法增加一个处理指令。
  12.              Element journalElement =  catalogElement.addElement("journal");//在 catalog 元素中使用 addElement() 方法增加 journal 元素。
  13.              journalElement.addAttribute("title", "XML Zone");//使用 addAttribute() 方法向 journal 元素添加 title 和 publisher 属性。
  14.              journalElement.addAttribute("publisher", "IBM developerWorks");
  15.              Element articleElement=journalElement.addElement("article");//向 article 元素中添加 journal 元素。
  16.              articleElement.addAttribute("level", "Intermediate");//为 article 元素增加 level 和 date 属性。
  17.              articleElement.addAttribute("date", "December-2001");
  18.              Element  titleElement=articleElement.addElement("title");//向 article 元素中增加 title 元素。
  19.              titleElement.setText("Java configuration with XML Schema");//使用 setText() 方法设置 article 元素的文本。
  20.              Element authorElement=articleElement.addElement("author");//在 article 元素中增加 author 元素。
  21.              Element  firstNameElement=authorElement.addElement("firstname");//在 author 元素中增加 firstname 元素并设置该元素的文本。
  22.              firstNameElement.setText("Marcello");
  23.              Element lastNameElement=authorElement.addElement("lastname");//在 author 元素中增加 lastname 元素并设置该元素的文本。
  24.              lastNameElement.setText("Vitaletti");
  25.              document.addDocType("catalog",null,"file://c:/Dtds/catalog.dtd");//可以使用 addDocType() 方法添加文档类型说明。
  26.              try{
  27.                             XMLWriter output = new XMLWriter(//创建输出流
  28.                     new FileWriter( new File("c:/catalog/catalog.xml") ));
  29.                             output.write( document );//将读取出来的document写入到输出流中
  30.                             output.close();
  31.                 }
  32.              catch(IOException e)
  33.                      {
  34.                              System.out.println(e.getMessage());
  35.                      }
  36.         }
  37. public static void main(String[] argv){
  38.         XmlDom4J dom4j=new XmlDom4J();
  39.         dom4j.generateDocument();
  40.         }
  41. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2