• xPath技术


    1、xPath的作用:快速获取所需要的节点对象。

    2、在Dom4j中如何使用xPath技术?

        (1)导入xPath支持的jar包。  jaxen-1.1-beta-6.jar

        (2)使用方法

            List<Node>  selectNodes("xPath表达式");//查询多个节点对象

            Node  selectSingleNode("xPath表达式");//查询一个节点对象

    3、语法

             /      绝对路径      表示从xml的根位置开始或子元素(一个层次结构)

                            //     相对路径       表示不分任何层次结构的选择元素。

                            *      通配符         表示匹配所有元素

                            []      条件           表示选择什么条件下的元素

                            @     属性            表示选择属性节点

                            and     关系          表示条件的与关系(等价于&&)

                            text()    文本           表示选择文本内容

    3.1

    /**
     * 第一个xpath程序
     * @author APPle
     *
     */
    public class Demo1 {
    
        
        public static void main(String[] args) throws Exception{
            /**
             * 需求: 删除id值为2的学生标签
             */
            Document doc = new SAXReader().read(new File("e:/student.xml"));
            
            //1.查询id为2的学生标签
            //使用xpath技术
            Element stuElem = (Element)doc.selectSingleNode("//Student[@id='2']");
    
            //2.删除标签
            stuElem.detach();
            
            //3.写出xml文件
            FileOutputStream out = new FileOutputStream("e:/student.xml");
            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding("utf-8");
            XMLWriter writer = new XMLWriter(out,format);
            writer.write(doc);
            writer.close();
        }
    
    }

    3.2

    /**
     * 学习xPath表达式语法
     * @author APPle
     *
     */
    public class Demo2 {
    
        public static void main(String[] args) throws Exception {
            Document doc = new SAXReader().read(new File("./src/contact.xml"));
            
            String xpath = "";
            
            /**
             * 1.      /      绝对路径      表示从xml的根位置开始或子元素(一个层次结构)
             */
            xpath = "/contactList";
            xpath = "/contactList/contact";
            
            /**
             * 2. //     相对路径       表示不分任何层次结构的选择元素。
             */
            xpath = "//contact/name";
            xpath = "//name";
            
            /**
             * 3. *      通配符         表示匹配所有元素
             */
            xpath = "/contactList/*"; //根标签contactList下的所有子标签
            xpath = "/contactList//*";//根标签contactList下的所有标签(不分层次结构)
            
            /**
             * 4. []      条件           表示选择什么条件下的元素
             */
            //带有id属性的contact标签
            xpath = "//contact[@id]";
            //第二个的contact标签
            xpath = "//contact[2]";
            //选择最后一个contact标签
            xpath = "//contact[last()]";
            
            /**
             * 5. @     属性            表示选择属性节点
             */
            xpath = "//@id"; //选择id属性节点对象,返回的是Attribute对象
            xpath = "//contact[not(@id)]";//选择不包含id属性的contact标签节点
            xpath = "//contact[@id='002']";//选择id属性值为002的contact标签
            xpath = "//contact[@id='001' and @name='eric']";//选择id属性值为001,且name属性为eric的contact标签
            
            /**
             *6.  text()   表示选择文本内容
             */
            //选择name标签下的文本内容,返回Text对象
            xpath = "//name/text()";
            xpath = "//contact/name[text()='张三']";//选择姓名为张三的name标签
            
            
            List<Node> list = doc.selectNodes(xpath);
            for (Node node : list) {
                System.out.println(node);
            }
        }
    
    }
  • 相关阅读:
    谷歌在外贸中的实战解析
    关于外贸淡季的几点看法
    如何打造完美报价单
    bbs
    你身上的所有光环,同样是套在你身上的枷锁
    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一
    用C#生成随机中文汉字验证码的基本原理
    必须根据不同的数据内容来套用不同的编码或是译码函式,以便取得对应的字节或是字符串数据
    锁和多线程:5种锁介绍(三)
    锁和多线程:3种锁的使用(二)
  • 原文地址:https://www.cnblogs.com/h-g-f-s123/p/6105079.html
Copyright © 2020-2023  润新知