精华内容
下载资源
问答
  • XML文件的创建 我们前面学习了Dom4j的解析XML文本文档的使用,主要是利用SAXReader类来解析出Document类的文档,然后对Document文档进行解析. 现在我们来学习创建XML文本文档...1.首先创建一个Document类的对象 2.操作

    XML文件的创建
    我们前面学习了Dom4j的解析XML文本文档的使用,主要是利用SAXReader类来解析出Document类的文档,然后对Document文档进行解析.
    现在我们来学习创建XML文本文档,主要是利用Dom4j提供的类XMLWriter,来讲Document类的对象持久化到XML文件中
    我们可以将书写XML文件分为六个步骤
    1.首先创建一个Document类的对象
    2.操作Document类对象,来添加根节点,子节点,添加属性,添加CDATA,添加注释等一系列的操作
    3.获取要写入的XML文件的路径
    4.创建XMLWriter类的对象(系统提供的输出流)
    5.XMLWriter类的对象来将document对象持久化到XML文件中
    6.最后不要忘记关闭关闭系统流
    下面我们简单地写一个XML文件

    //1.创建document类的对象
    Document doc = DocunmentHelp.creatDocument();
    //2.对document操作,来完成我们需要添加的数据
    Element root = doc.addElement("School");//创建根节点
    Attribute attribute = root.addAttribute("name","清华大学");//给根节点添加属性
    root.addComment("这是注释");//添加注释
    root.addCDATA("清华大学是中国最棒的大学");
    Element student = root.addElement("student");//添加子节点student
    Element name = student.addElement("name");//student节点添加子节点name
    name.addText("郭沫若");//给name节点添加内容
    //3.获得我们要创建的XML文件的路径
    String filePath = System.getProperty("user.dir")+"/src/test/school.xml";
    File file = new File(filePath);
    //创建XMLWriter类的对象(输出流)
    Writer writer = new FileWriter(file);
    XMLWriter xmlWriter = new XMLWriter(writer);
    //将document做持久化处理
    xmlWriter.write(doc);
    //关闭流
    xmlWriter.close();

    XML文本文档的修改
    我们还是以上面school.xml为例,这里我们主要介绍一些简单的API

    //修改节点的属性
    Attribute attribute = root.attribute("name");
    attribute.setName("名字");//修改属性的name
    attribute.setValue("北京大学");//将属性的值修改为"北京大学"
    //修改节点的名称
    root.setName("学校");//将根节点的名字改为"学校"
    //修改节点的内容
    name.setText("鲁迅");//将name的内容修改为"鲁迅";

    XML文件的删除
    这里面我们主要是利用父节点来删除子节点

    //我们利用student节点来删除它的子节点name
    student.remove(name);//将name节点删除了

    在Dom4j以及XML文本文档的学习中,我们主要要记住解析和创建XML文本文档的步骤
    解析XML文本文档的步骤:
    1.获取要解析的XML文本文档的路径
    2.Dom4j提供的SAXReader类创建读流来解析XML文件
    3.接收解析后得到的Document文档,然后主要是对Document文档的解析
    4.创建对象接收解析出来的数据或者利用集合和map的创建来接收数据

    展开全文
  • 用DOM来创建XML文档

    2016-06-28 09:43:30
    下面以 “从里到外” 原则创建一个简单XML文件,只要明白其原理,创建复杂的XML文档也就是举一反一事了。 好,下面就以创建以下的xml文档为例: 天龙八部分析步骤:(从里到外) 1:先创建"天龙八部"文章...

    下面以 “从里到外” 的原则创建一个简单的XML文件,只要明白其原理,创建复杂的XML文档也就是举一反一的事了。

    好,下面就以创建以下的xml文档为例:

    <?xml version="1.0" encoding="utf-8"?>
    <appstore><goods goods_id="j001"><name>天龙八部</name><intro><![CDATA[天龙八部是部好书]]></intro></goods></appstore>
    分析步骤:(从里到外)

    1:先创建"天龙八部"文章节点
    2:再创建普通的name节点’
    3:再把天龙文本节点,加入到name节点中

    4:创建cdata节点
    5:创建intro节点
    6:再把cdata节点放入intro中

    7:创建goods节点
    8:把name,intro放入goods节点

    9:创建属性节点goods_id
    10:把属性节点放入goods节点

    11:创建appstore节点
    12:把goods放入appstore节点

    13:把appstore放入文档中


    在上面的步骤中,体现出
    创建普通节点
    创建文本节点
    创建CDATA节点
    创建属性节点
    增加子节点


    下面就是具体的代码实现:

    // 创建DOM文档对象
    $dom = new DOMDocument('1.0','utf-8');
    
    // 1:创建文本节点
    $tl = $dom->createTextNode('天龙八部');
    
    // 2:创建普通节点
    $name = $dom->createElement('name');
    
    // 3:把天龙加到name节点中
    $name->appendChild($tl);
    
    // 4:创建CDATA
    $cdata = $dom->createCDATASection('天龙八部是部好书');
    
    // 5:创建intro节点
    $intro = $dom->createElement('intro');
    
    // 6:把cdata加入intro
    $intro ->appendChild($cdata);
    
    // 7:创建goods
    $goods = $dom->createElement('goods');
    
    // 8:把name,intro放入goods下
    $goods->appendChild($name);
    $goods->appendChild($intro);
    
    // 9:创建属性节点goods_id
    $attr = $dom->createAttribute('goods_id');
    $attr->value = 'j001';
    
    // 10:把属性节点加入到goods下
    $goods->appendChild($attr);
    
    // 11:创建appstore
    $appstore = $dom->createElement('appstore');
    
    // 12:把goods加到appstore下
    $appstore->appendChild($goods);
    
    // 13:再把sppstore加到文档下面
    $dom->appendChild($appstore);
    

    完成以上操作,这时xml文件已经创建好了

    接下来还有个问题,就是创建好的xml文件你是要直接输出,还是保存呢?


    直接输出的话,还需要在后面加上这么一段代码:

    /**/
    // 输出
    header("content-type:text/xml; charset=utf-8");
    echo $dom->savexml();    // 直接输出

    保存的话,那就得加上这么一句:

    // 保存
    echo $dom->save('05.xml')?'OK':'FAIL'; // 这样写的保存路径是当前文件夹

    至此,用DOM来创建XML文档就完成了!


    展开全文
  • XML文档的转换

    2012-03-16 10:32:38
    在java.xml.transform包中类,可以处理xml的转换。 、下面是转换步骤: (1)、创建文档对象 (2)、创建TransformerFactory实例; (3)、使用TransformerFactory创建Transformer实例 (4)

    一般来说xml文件格式被认为是一种很好的数据交换格式。那么我们如何将其它形式的文件在java程序中转化成XML格式的文件呢?

    在java.xml.transform包中的几个类,可以处理xml的转换。

    一、下面是转换步骤:

    (1)、创建文档对象

    (2)、创建TransformerFactory实例;

    (3)、使用TransformerFactory创建Transformer实例

    (4)、使用transform()方法将源树输出到结果中(这里以流的形式输出到源文件中)

    二、下面是一个例子

    将一个已经创建好的xml文件通过流转换为DOM文件,对其进行加工,然后再转换为xml格式。

    package com.xml.demo;

    import java.io.File;
    import java.io.FileOutputStream;

    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;

    import org.w3c.dom.Document;
    import org.w3c.dom.Element;

    public class MyWriterXMLByDOM {

        public static void main(String[] args) {
            //得到DOM解析器工厂实例
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            
            Element theBook = null, theElem = null, root = null;
            try {
                //设置由此工厂创建的解析器在解析xml文档的时候,必须删除元素的内容中的空格
                factory.setIgnoringElementContentWhitespace(true);
                //由DOM解析器工厂生成DOM解析器实例db
                DocumentBuilder db = factory.newDocumentBuilder();
                
                File file = new File("WebRoot\\t.xml");
                //解析xml文档的输入流,得到一个Document
                Document xmldoc = db.parse(file);
                //得到document的根节点
                root = xmldoc.getDocumentElement();
                //在dom文档中增加一个theBook节点,且为该节点追加三个子节点
                theBook = xmldoc.createElement("book");
                theElem = xmldoc.createElement("name");
                theElem.setTextContent("java高级程序设计");
                //将theElem节点转化为theBook的子节点
                theBook.appendChild(theElem);
                theElem = null;
                theElem = xmldoc.createElement("price");
                theElem.setTextContent("20");
                //将theElem节点转化为theBook的子节点
                theBook.appendChild(theElem);
                theElem = null;
                theElem = xmldoc.createElement("note");
                theElem.setTextContent("看过不后悔");
                theBook.appendChild(theElem);
                //把theBook节点插入为根节点的子节点
                root.appendChild(theBook);
                
                //将dom文档转化为xml文档
                //创建翻译器的生产工厂的实例
                TransformerFactory transFactory = TransformerFactory.newInstance();
                //由翻译器的生产工厂生产翻译器
                Transformer transformer = transFactory.newTransformer();
                //给我们的翻译器准备要翻译的原料(把我们的xmldoc文档转化成翻译器transformer能够翻译的DOMSource对象)
                DOMSource source = new DOMSource(xmldoc);
                //准备一个存放翻译器翻译结果的载体
                StreamResult result = new StreamResult(new FileOutputStream(file));
                //开动翻译器,进行翻译
                transformer.transform(source, result);

            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

    }

    运行结果:

    t.xml内容改变



    展开全文
  • 4:从根元素开始逐级获取子元素已达到遍历XML文档的目的 Element的每一个实例用于表示XML文档中的一个元素(一对标签) 常用的方法: String getName() 获取标签名 String getText() 获取标签中间的文本数据 Element ...

    使用DOM4J解析XML的大致步骤
    1:创建SAXReader
    2:使用SAXReader读取XML文档并生成Document对象
    Document对象内部就保存了XML文档描述的整棵树结构
    3:通过Document对象获取根元素
    4:从根元素开始逐级获取子元素已达到遍历XML文档的目的

    Element的每一个实例用于表示XML文档中的一个元素(一对标签)
    常用的方法:
    String getName() 获取标签名
    String getText() 获取标签中间的文本数据
    Element element(String name) 获取指定名字的子标签
    List elements() 获取所有子标签,集合中为若干Element实例
    List elements(String name) 获取所有同名子标签(指定的名字)

    标签上的属性:attributeValue(String str)<===>attribute(String str).getValue(String value);

    String elementText(String name) 获取指定名字的子标签的中间的文本
    例如:
    e.elementText(“abc”);
    等同于
    e.element(“abc”).getText();

    package xml;
    
            import org.dom4j.Attribute;
            import org.dom4j.Document;
            import org.dom4j.Element;
            import org.dom4j.io.SAXReader;
    
            import java.util.List;
    
    /**
     * 解析xml文档
     *
     * 解析XML有两种常见的方式
     * 1:SAX解析:Simple API for Xml
     *   逐行扫描解析,速度块,内存消耗小,但是不能对XML文档进行修改。
     *
     * 2:DOM解析:Document Object Model
     *   DOM是w3c推荐的解析方式,称为文档对象模型
     *   DOM解析其内部会将XML文档先读取完毕后内建整个树状模型,然后让我们解析
     *   时通过遍历树状结构来达到解析目的。
     *
     *
     *   dom4j(dom for java)是java中常见的以DOM形式解析XML文档的API。
     */
    public class ParseXmlDemo {
        public static void main(String[] args) {
            /*
                使用DOM4J解析XML的大致步骤
                1:创建SAXReader
                2:使用SAXReader读取XML文档并生成Document对象
                  Document对象内部就保存了XML文档描述的整棵树结构
                3:通过Document获取根元素
                4:从根元素开始逐级获取子元素已达到遍历XML文档的目的
             */
            try{
                //1:创建SAXReader
                SAXReader reader = new SAXReader();
                //2:读取XML文档并生成Document
                Document doc = reader.read("./emplist.xml");
                /*
                    3:通过Document获取根元素(XML的根标签)
                    Element的每一个实例用于表示XML文档中的一个元素(一对标签)
                    常用的方法:
                    String getName()    获取标签名
                    String getText()    获取标签中间的文本数据
                    Element element(String name)    获取指定名字的子标签
                    List elements()     获取所有子标签,集合中为若干Element实例
                    List elements(String name)      获取所有同名子标签(指定的名字)
    
                    String elementText(String name) 获取指定名字的子标签的中间的文本
                    例如:
                    e.elementText("abc");
                    等同于
                    e.element("abc").getText();
                 */
                Element root = doc.getRootElement();
                System.out.println(root.getName());//list
                //获取每个员工信息(通过根标签获取所有<emp>子标签)
                List<Element> list = root.elements("emp");//获取根标签"emp"下的所有子标签
                System.out.println(list.size());
                //遍历子标签
                for(Element empEle:list){
                    //获取员工名字
    //                Element nameEle = empEle.element("name");//获取emp中的子标签<name>
    //                String name = nameEle.getText();//获取name标签中的文本信息
                    String name = empEle.elementText("name");
    
                    //获取员工年龄
    //                Element ageEle = empEle.element("age");
    //                int age = Integer.parseInt(ageEle.getText());
                    int age = Integer.parseInt(empEle.elementText("age"));
    
                    //获取员工性别
    //                Element genderEle = empEle.element("gender");
    //                String gender = genderEle.getText();
                    String gender = empEle.elementText("gender");
    
                    //获取员工工资
    //                Element salaryEle = empEle.element("salary");
    //                int salary = Integer.parseInt(salaryEle.getText());
                    int salary = Integer.parseInt(empEle.elementText("salary"));
    
    //                获取员工工号
    //                Attribute attr = empEle.attribute("id");
    //                int id = Integer.parseInt(attr.getValue());
    
    //                int id = Integer.parseInt(empEle.attribute("id").getValue());
    
                    int id = Integer.parseInt(empEle.attributeValue("id"));
    
                    System.out.println("name:"+name+","+"工号:"+id+","+"年龄:"+age+","+"sex:"+gender+","+"薪资:"+salary);
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
    

    输出结果:

    在这里插入图片描述

    展开全文
  • DOM4J解析XML 掌握 ...4. //创建一个XML读取工具对象 5. SAXReader sr = new SAXReader(); 6. //使用读取工具对象, 读取XML文档的输入流 , 并得到文档对象 7. Document doc = sr.read(fis); 8. //通
  • 解析XML文档是,读取XML文档内容包含,那么读取XML文档需要工具来读取,在此我用Dom4JSaxReader来读取XML文档。(关于Dom4J-SaxReader...使用Myeclipse创建一个项目 新建一个class(类)文件包含在一个p...
  • (1)获取一个包含XML文档数据XmlDocument类对象,通常有两种方法来实现这个功能: 通过XmlDocument类构造函数创建不包含任何结点空对象,常用默认构造函数。 (2)通过XmlDocument类ChildNodes和Item属性...
  • java web的XML文档

    2020-03-08 14:34:36
    W3C是Word Wide Wed Consortium(万维网联盟),...3.由W3C创建一个工作组(认可草案) 4.由W3C发布一份工作草案(草案进度) 5.由W3C发布一份候选推荐准(草案建议进行测试) 6.由W3C发布一份被提议推荐标...
  • python创建解析XML

    2021-01-10 00:17:40
    1,在内存中创建一个文档对象 2,创建一个根节点对象并设置其属性,将其添加在文档对象中 3,创建叶子节点对象并设置其属性,将其添加在父节点对象中(根节点) 4,创建嵌套叶子节点(孙节点)对象并设置其属性或添加...
  • 1 首先利用DocumentBuilderFactory创建一个DocumentBuilderFactory实例 2 然后利用DocumentBuilderFactory创建DocumentBuilder 3 然后加载XML文档(Document), 4 然后获取文档的根结点(Element), 5 ...
  • C# 创建XML文件

    2019-07-29 16:11:59
    C# 创建、读取XML文件 前言:对于xml文件的创建,主要包括以下几个步骤: ...3、为xml文档创建一个要素作为整个文档的根节点(CreateElement) 4、获取第3步创建的要素作为根节点(XmlNode;SelectSin...
  • 导入XML相关软件包创建一个SAXBuilder从文件或流创建一个文档提取根元素检查属性检查子元素导入XML相关软件包importjava.io.*;importjava.util.*;importorg.jdom2.*;创建DocumentBuilderSAXBuildersaxBuilder=...
  • SAX解析XML文档

    2012-08-22 22:13:00
    SAX采用时间处理方式解析XML文件,利用SAX解析XML文档,涉及两部分:解析器和是事件处理器。 二、SAX解析XML文档步骤: (1)创建解析工厂; (2)得到解析器 ; (3)获取读取器; (4)设置内容...
  • DOM和SAX生成xml文件 JDOM和DOM4J会形成一个全新RSS文件   2-1 创建根节点和book节点属性 1,前两个步骤和解析XML文件一致,都是获取DocumentBuilder对象 DocumentBuilderFactory dbf = ...
  • xml解析步骤: 第创建xmlDocument 对象,并...第二: xml文档路径,当前路径为工程项目下 .\bin\debug String StrFileName="test.xml"; 第三: 读取xml(利用xmlReader读取) xdoc.load(strFileName); 第四
  • 使用JDOM解析XML文档 JDOM是一种使用 XML(标准通用标记语言下一个子集) 独特 Java 工具包。下面我们来看一下怎么使用 JDOM来解析XML文档。 首先下载JDOMjar包,并导入到... 创建一个SAXBuilder对象。 SAXB...
  • 一、创建XML文档的步骤: 1.创建一个文档指针pdoc 2. 创建一个节点proot,用来代表根节点 3. 将proot这个节点设置为根节点 4. 添加proot的子节点或者孙子结点,并设置好所有节点的内容和属性 5. 最后关闭文档指针,...
  • (1) 先创建一个XML文档对象,同时加载对应XML文件 (2) 获取XML文档对象根节点 (3) 创建一个元素,同时给该无素初始化 (4) 在对应位置放置该元素 (5) 创建步骤4)中元素对应子元素,同时在4)中元素下面添加...
  • 使用DOM的步骤 以下是在使用DOM解析器解析文档...从文件或流创建一个文档 提取根元素 检查属性 检查子元素 导入XML相关的软件包 1 2 3 importorg.w3c.dom.*; importjavax....
  • XML文档解析之SAX解析

    2017-06-19 11:53:06
    解析步骤Java SAX解析是按照xml文件顺序一步一步来解析。... 创建一个继承DefaultHandler类解析类,重写其中方法进行业务处理并创建这个类实例; 4. 将xml文件和解析类实例对象传给SAXParser
  • 利用C#来创建一个xml文档 主要的步骤还是: 利用了微软提供的XmlDocument类来创建一个xDoc的文档实例化对象 利用这个对象来创建xml的表头(声明),里面包含版本,编码 然后还是利用这个xDoc文档对象里的...
  • DOM4j解析xml文档

    2019-04-08 16:04:23
    DOM4J是dom4j.org出品的一个开源XML解析包,是一个十分优秀JavaXML API,具有性能优异、功能强大和极其易使用特点,它性能超过sun公司官方dom技术,同时它也是一个开放源代码软件。Hibernate也用它来读写...
  • XML文档解析之JDOM解析

    2017-06-20 10:43:15
    使用JDMO解析需要自己加载相关jar包,JDOM jar包下载地址:...创建一个文件输入流,并将xml文件加载到输入流中; 通过saxBuilderbuild方法,将输入流加载到saxBuilderDocumentdocument对象中; 通过Doc
  • 使用JDOM来生成XML文档

    2010-05-17 17:11:32
    下面介绍使用Eclipse来加载JDOMjar包,同时利用JDOM来创建并生成一个XML文档步骤如下。 (1)在Eclipse中建立工程项目。单击 “File”|“New”|“Project”命令菜单,如图22-6所示。 图22-6 Eclipse中选择...
  • 我们就可以用cvLoad()这个函数加载他们,让他们对我们人脸进行检测,但是,现在生活中计算机视觉并不远远是检测人脸,还有很多物品需要识别,所以,能不能自己做个xml的检测文档,用它来检测自己需要东西呢...
  • XML_用sax文档解析文档

    2014-05-13 22:03:06
    解析步骤: 用sax解析文档: 1、通过工厂获取解析器; 2、用解析器创建一个Reader、 3、用Reader读取XML文档 4、在解析过程中注入事件处理器

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 312
精华内容 124
热门标签
关键字:

创建一个xml文档的步骤