XML基础

作者: 幻影翔 | 来源:发表于2018-05-22 20:12 被阅读11次

    XML的作用

    .1 作为软件配置文件
    
    .2 作为小型的“数据库”
    

    XML语法(由w3c组织规定的)

    标签:  
        标签名不能以数字开头,中间不能有空格,区分大小写。有且仅有一个根标签。
    属性:          
        可有多个属性,但属性值必须用引号(单引号或双引号)包含,但不能省略,也不能单双混用。
    文档声明:
       <?xml version="1.0" encoding="utf-8"?>     
       encoding="utf-8": 打开或解析xml文档时的编码
    

    注意:保存xml文档时的编码和解析xml文档时的编码要保持一致,才能避免中文乱码问题!

    XML解析

    程序读取或操作xml文档
       两种解析方式:   DOM解析   vs   SAX解析
    

    DOM解析原理:

    一次性把xml文档加载成Document树,通过Document对象得到节点对象,通过节点对象访问xml文档内容(标签,属性,文本,注释)。
    

    Dom4j工具(基于DOM解析原理):

    读取xml文档:
           Document doc = new SAXReader().read("xml文件"); 
    节点:
          nodeIterator();  所有节点
    标签:
          element("名称")   指定名称的第一个子标签对象
          elementIterator("名称");  指定名称的所有子标签对象
          elements();  所有子标签对象
    属性:
          attributeValue(“名称”)指定名称的属性值
          attribute("名称")   指定名称的属性对象
          getName() 属性名称
          getValue()  属性值
          atributeIterator()   所有属性对象(Iterator)
          attributes()       所有属性对象(List)
    文本:
          getText()  得到当前标签的文本
          elementText("子标签名称")  得到子标签的文本
    

    Dom4j修改xml文档

    1.写出内容到xml文档

    XMLWriter writer = new XMLWriter(OutputStream, OutputForamt)
    wirter.write(Document);
    

    2.修改xml文档的API

    增加:
         DocumentHelper.createDocument()  增加文档
         addElement("名称")  增加标签
         addAttribute("名称",“值”)  增加属性
    修改:
         Attribute.setValue("值")  修改属性值
         Element.addAtribute("同名的属性名","值")  修改同名的属性值
         Element.setText("内容")  修改文本内容
    删除
        Element.detach();  删除标签  
        Attribute.detach();  删除属性
    

    # 3.xPath技术

    3.1引入

    问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!!
    

    3.2 xPath作用

    主要是用于快速获取所需的节点对象。
    

    3.3在dom4j中如何使用xPath技术

    导入xPath支持jar包。  jaxen-1.1-beta-6.jar
    
     使用xpath方法
         List<Node>  selectNodes("xpath表达式");   查询多个节点对象
         Node       selectSingleNode("xpath表达式");  查询一个节点对象
    

    3.4 xPath语法

    /     绝对路径      表示从xml的根位置开始或子元素(一个层次结构)
    //    相对路径       表示不分任何层次结构的选择元素。
    *     通配符         表示匹配所有元素
    []     条件           表示选择什么条件下的元素
    @    属性            表示选择属性节点
    and    关系          表示条件的与关系(等价于&&)
    text()   文本           表示选择文本内容
    

    相关文章

      网友评论

        本文标题:XML基础

        本文链接:https://www.haomeiwen.com/subject/vcvkjftx.html