`
gaosililn
  • 浏览: 73085 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

标签文本解析:XPath解析

    博客分类:
  • Java
 
阅读更多

XPath 解析xml文件

什么是XPath?

  • 结构定义 - XPath定义像元素,属性,文本,命名空间,处理指令,注释和文档节点的XML文档部分

  • 路径表达式 - XPath提供了强大的路径表达式选择的节点或在XML文档中的节点列表。

  • 标准功能 - XPath提供了丰富的标准函数库操纵字符串值,数值,日期和时间比较,节操作,顺序操作,布尔值等。

  • XSLT重要组成部分 - XPath是在XSLT标准的主要元素之一,是必须有知识,以便使用XSLT的文档。

  • W3C推荐 - XPath是万维网联盟(W3C)的官方推荐  

 



 如我们常见的html文本。

 

XPath的表达式以及语法:



 

 简单的例子 :

  try {
            File file = new File("C:\\Users\\admin\\Desktop\\Files\\xPathTest.xml");
            //生成document对象
            DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder();
            Document document = documentBuilder.parse(file);
            document.getDocumentElement().normalize();

            XPath xPath = XPathFactory.newInstance().newXPath();
            //选取属性rollno=593的节点
//            String exprsion = "/class/student[@rollno=\"593\"]";
            //选取倒数第二个
//            String exprsion = "/class/student[last()-2]";
            //选取第一个
//            String exprsion = "/class/student[1]";
            String exprsion = "/class/student";
            NodeList nodes = (NodeList) xPath.compile(exprsion).evaluate(document, XPathConstants.NODESET);
            for (int i = 0; i < nodes.getLength(); i++) {
                Node item = nodes.item(i);
                //标签名称
                String nodeName = item.getNodeName();
                System.out.println("nodeName:" + nodeName);
                //标签属性的值
                String nodeValue = item.getNodeValue();
                System.out.println("nodeValue:" + nodeValue);
                //获取标签下的所有的值(包括子节点)
                String textContent = item.getTextContent();
                System.out.println("textContent:" + textContent);
                //获取节点的类型
                short nodeType = item.getNodeType();
                System.out.println("nodeType:" + nodeType);
                //获取节点的指定属性的值
                Element element = (Element) item;
                String attribute = element.getAttribute("rollno");
                System.out.println("attribute:" + attribute);
                //获取子节点的值
                String firstname = element.getElementsByTagName("firstname").item(0).getTextContent();
                String lastname = element.getElementsByTagName("lastname").item(0).getTextContent();
                String nickname = element.getElementsByTagName("nickname").item(0).getTextContent();
                String marks = element.getElementsByTagName("marks").item(0).getTextContent();
                System.out.println("firstname:" + firstname);
                System.out.println("lastname:" + lastname);
                System.out.println("nickname:" + nickname);
                System.out.println("marks:" + marks);

            }


        } catch (Exception e) {
            e.printStackTrace();
        }

 

 

  • 大小: 29.2 KB
  • 大小: 21.3 KB
  • 大小: 17.6 KB
分享到:
评论

相关推荐

    XPath解析工具

    在本案例中,我们讨论的是一个使用C#编写的XPath解析工具,该工具能够帮助开发者更方便地操作XML文档,提取所需的数据。 XPath工具的主要功能可能包括以下几点: 1. **节点选取**:XPath表达式可以用来选择XML文档...

    xpath 基础

    1. **节点类型**:XPath处理的节点主要有四种类型——元素(Element)、属性(Attribute)、文本(Text)和命名空间(Namespace)。此外,还有处理指令(Processing Instruction)、注释(Comment)和其他类型的节点...

    Dom,Sax,Xpath解析XML实例

    3. XPath解析: XPath是一种查询语言,用于在XML文档中查找信息。它可以快速定位到XML文档中的节点,如元素、属性、文本等。XPath表达式简洁且强大,可以方便地选取满足特定条件的节点。例如,`/root/element` 将...

    Java开源的xpath解析器Jsoupxpath.zip

    为了在java里也享受xpath的强大与方便但又苦于找不到一款足够强大的xpath解析器,故开发了JsoupXpath。JsoupXpath的实现逻辑清晰,扩展方便,支持几乎全部常用的xpath语法.http://www.cnblogs.com/ 为例 "//a/@href...

    xpath语法详解

    在实际应用中,XPath通常与XSLT(一种XML转换语言)配合使用,但也可以在各种XML解析库和编程语言中单独使用,如Python的lxml库、Java的DOM4J等。XPath提供了高效且灵活的方式来查询和操作XML数据,对于处理复杂的...

    XPath Helper:chrome爬虫网页解析工具

    XPath Helper是一款针对Chrome浏览器的强大工具,它专门用于帮助开发者和数据爬取者高效地解析和提取网页中的数据。XPath(XML Path Language)是一种在XML文档中查找信息的语言,而XPath Helper则是Chrome浏览器的...

    XPath Helper 2.0.2网页插件

    XPath Helper 2.0.2 是一款非常实用的网页插件,主要针对的是网页数据抓取和解析领域。XPath(XML Path Language)是一种在XML文档中查找信息的语言,它允许我们通过路径表达式来选取XML文档中的节点,包括元素、...

    Sax解析结合Xpath的用法

    通过XPath表达式,我们可以快速找到XML文档中的特定元素、属性或者文本。XPath使用路径表达式来选取节点,例如选取所有`&lt;item&gt;`元素可以用`/root/item`,选取所有属性名为`id`的属性可以用`@id`。 结合SAX和XPath,...

    解析xml文件并且保存xpath

    XML是一种自描述性的文本格式,它通过标签来描述数据的结构和内容。与HTML不同,XML不含有预定义的标签,而是允许用户根据需求创建自己的标签。例如,一个简单的XML文档可能如下所示: ```xml 编程艺术 陈思 ...

    dom4j和xpath必备jar包

    2. **节点测试**:XPath可以测试节点的类型,如元素节点、文本节点、属性节点等。 3. **轴操作**:XPath定义了多个轴,如祖先轴、后代轴、同级轴等,帮助我们从不同角度选取节点。 4. **函数支持**:XPath提供了一...

    mybatis入门之xpath解析xml

    因此,无论是XML解析还是MyBatis的使用,XPath都是一个不可或缺的知识点,对于初学者来说,掌握XPath的入门知识是迈入这个领域的第一步。通过实际的练习和项目实践,可以进一步提升对XPath和MyBatis的运用能力。

    xpath解析xml

    - 数据绑定框架,如Spring中的`&lt;util:map&gt;`标签,可以结合XPath从XML配置文件中提取数据。 - 测试工具,如JUnit的XML报告解析,可以使用XPath抽取测试结果。 - Web爬虫,通过XPath从HTML网页中提取关键信息。 总...

    XPath路径表达式详解

    在学习 XPath 之前,需要对 XML 的节点、元素、属性、原子值(文本)、处理指令、注释、根节点(文档节点)、命名空间以及对节点间的关系如父(Parent)、子(Children)、兄弟(Sibling)、先辈(Ancestor)、后代...

    MSXML: XPATH

    在MSXML中,XPath被广泛用于DOM(Document Object Model)解析,帮助开发者高效地定位和处理XML数据。 XPath 1.0是XPath的初始版本,它定义了一套简洁的表达式语法,允许开发者用类似 `/Invoice//LineItem[@Sku='...

    dom4j 和xpath

    相比于标准的DOM(Document Object Model)API,DOM4J更加轻量级,性能更优,同时提供了更多的高级特性,如XPath支持、SAX和DOM的集成、事件驱动的解析等。DOM4J通过树形结构表示XML文档,使得开发者可以方便地访问...

    Python爬虫解析XPATH讲义

    Python爬虫解析XPATH讲义 Python爬虫解析XPATH讲义是使用Python语言进行网络爬虫开发时,使用XPATH语言来提取HTML和XML文档中的信息的技术讲义。在本讲义中,我们将学习XPATH语言的基本概念、安装方法、路径表达式...

    Xpath指南XPATH实例

    以下是对“XPath指南”中可能包含的知识点的详细解析: 1. **XPath基础概念**: - **节点类型**:XPath处理的节点包括元素(Element)、属性(Attribute)、文本(Text)、命名空间(Namespace)、处理指令...

    xpath项目实例

    XPath,全称XML Path Language,是一种在XML文档中...记得,XPath是XML解析和数据处理的关键工具,无论是在Web开发、数据抓取还是服务器配置中,都有着广泛的应用。在实际工作中,熟练掌握XPath能显著提高工作效率。

    XPath 教程.doc

    2. **节点类型**:XPath 支持多种节点类型,包括元素、属性、文本、命名空间、注释、处理指令等。 3. **轴**:轴是用来定位节点的一种方式,常见的轴有: - `child`:选择当前节点的子节点。 - `parent`:选择当前...

    xpath的一些例子

    XPath,全称XML Path Language,是一种在XML文档中查找信息...在实际工作中,XPath常用于网页抓取、XML数据解析、XML文档验证等多个场景。通过实践和学习,你可以编写出更复杂的XPath表达式,以满足各种数据选取需求。

Global site tag (gtag.js) - Google Analytics