zoukankan      html  css  js  c++  java
  • XML

    数据储存语言:

    特点:

    与操作系统,编辑语言的开发平台无关,

    实现不同系统之间的数据切换

    作用:

    数据交互

    配置应用程序和网站

    格式良好的XML文档:

    1):所有XML元素都必须有结束标签

    2):XML标签对大小写敏感

    3):XML必须进行正确的嵌套

    4):同级标签以缩进对齐

    5):元素名称可以包含字母,数字,或其他字符

    6):元素名称不能以数字或者标点符号打头

    7):元素中不能包含空格

    8):属性值用双引号

    9):标签必须成对出现,有开始就有结束.

    如果特殊符号过多,使用下列格式

    < ![CDATA[

    要显示的字符

    ]]>

    DOM解析XML文档

    DOM把XML文档映射成一个倒挂的树

    DOM解析包 :org.w3c.dom

    Document:表示整个XML文档  相当于dom

    常用方法:

    NodeList getElementsByTagName(String Tag); 返回文档中指定名称所有元素的集合

    Element createElement(String tagName);  创建指定标记名称的元素(添加一个节点)

    Node 该文档树的单个节点

    常用方法:

    NodeList getChildNodes(); 获取该元素的所有子节点的的集合

    Element:XML文档中的一个元素

    常用方法:

    String getTagName(); 获得元素名称

     

    实现步骤:

    1):得到DOM解析器工厂实例

    DocumentBuilderFactory  factory

    = DocumentBuilderFactory.newInstance()

    2):DOM工厂获得DOM解析器

    DocumentBuider buider = factory.newDocumentBuilder()

    3):解析XML文档的输入流,得到一个Document

    Document doc=buider.parse("xml文件位置");

     

    解析XML文档:

    1):使用Document对象的getElementsByTagName()方法,我们可以得到一个NodeList对象

     

    获取所有books(DOM树根节点的第一个子节点的)品牌标签

    NodeList  list = doc.getElementsByTagName("品牌标签名");

     

    2):使用NodeList对象的item()方法来得到列表中的每一个Node对象 XML文档的根节点

     

    for (int i = 0; i < list.getLength(); i++) {

     

       3):获取列表的每一个元素

     

          Node de = list.item(i);

    4):获取当前节点指定标签的值

     

    Element let = (Element) de;

    String str = let.getAttribute("name");

    5):获得当前节点的所有子节点

     

    NodeList nodeList = let.getChildNodes();

    6):遍历所有的子节点Node对象

     

    for (int j = 0; j < nodeList.getLength(); j++) {

                 //拿到列表的每一个元素

                 Node node = nodeList.item(j);

                 //判断当前Node是一个Element,则进行转换

                 if (node.getNodeType() == Node.ELEMENT_NODE) {

                    Element ele = (Element) node;

                    //获取此ele的name属性值

                    String strs = ele.getAttribute("name");

                    System.out.println("手机:" + str + " 型号:" + strs);

                 }

              }

    7):

    保存XML文件

    步骤:

    1):创建TransformerFactory对象.      转换工厂的实例

    TransformerFac工厂实例 = TransformerFactory.newInstance();

    2):通过转换工厂实例获得Transformer对象.        获取转换器

    Transformer 转换器对象 = 工厂实例 .newTransformer();

    3):创建DOMSource对象  使用转换器将DOM树转换成xml文件

    //创建源

    Source xmlSource = new DOMSource(“DOM树对象);

    4):设置输出属性

    编码格式(编码格式必须跟DOM的解码格式一样,否则出现乱码)

    设置转换器的编码格式(设置转换器的第一个参数可设置为:"{http://xyz.foo.com/yada/baz.html}foo"或者OutputKeys.ENCODING.)

                      转换器对象.setOutputProperty(OutputKeys.ENCODING, "UTF-8");

    5):创建StreamResult对象

    包含保存文件的信息

    //创建目标

    Result outputTarget = new StreamResult(“文件保存路径”);

     

    6):XML保存到指定文件中

    转换器对象.transform(xmlSource, outputTarget);//此处有异常

    添加DOM节点

    步骤:

    1):创建一个XXX节点

    设置元素名,

    2):创建一个yyy节点

    设置元素名,

    3):yyy节点设置为XXX的子节点

    4):找到AAA(根节点)的位置,然后将XXX节点挂到DOM树上

    更改标签

    实现步骤:
           1):
    获得需要修改的标签

    2):调用setAttribute(“属性名”,”属性值”)方法修改属性

    删除某一个节点

    实现步骤:

    1):.getElementsByTagName(String name)获取标签列表.

    2):获取需要删除的节点值为XXX的标签对象.

    3):通过getParentNode(方法获取父节点对象).

    4):调用父节点的removeChid()方法删除节点

     

    使用DOM4J解析DOM文档

    使用DOM4J解析XML文档,需要先下载DOM4j然后加入工程就可以使用了

    把下载好的dom4j包放到程序所在文件夹的根目录

    找到DOM4J.jar 添加进工程

    操作方法非的详细过程:

     

    1):加载DOM树结构

     

    2):遍历DOM

    3):保存DOM树到指定XML文件

     

    4):添加节点

    5):修改节点

     

    6):删除节点信息

  • 相关阅读:
    [网鼎杯 2018]Comment-Git泄露部分
    Google Hacking 详解
    macOS修改Docker容器的端口映射配置
    CentOS6 7 8更换阿里yum源
    XSS代码合集(含测试效果详细版)-HTML4与更早版本的向量2
    VMware 启动Ubuntu时黑屏
    XSS代码合集(含测试效果详细版)-HTML4与更早版本的向量1
    APP安全在线检测网站
    Juice-Shop 二星题
    慕课网-安卓工程师初养成-4-5 练习题
  • 原文地址:https://www.cnblogs.com/it-xiaoBai/p/8080797.html
Copyright © 2011-2022 走看看