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(); }
相关推荐
为了在java里也享受xpath的强大与方便但又苦于找不到一款足够强大的xpath解析器,故开发了JsoupXpath。JsoupXpath的实现逻辑清晰,扩展方便,支持几乎全部常用的xpath语法.http://www.cnblogs.com/ 为例 "//a/@href...
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
JsoupXPath的节点对象JXNode不仅可以获取标签节点,还可以获取属性节点 HtmlCleaner是一个开源的Java语言的Html文档解析器。HtmlCleaner能够重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的 HTML 文档。...
#例如:'别名'下的span标签文本,‘发病部位'下的span标签文本以及‘挂号科室‘下的span标签文本 # def disease(url): text = get_html(url) tree = etree.HTML(text) bm = tree.xpath('//ul[@class=information_...
Omniparser是本地的Golang ETL解析器,它以流方式提取各种格式( CSV,txt,固定长度/宽度,XML,EDI / X12 / EDIFACT,JSON和自定义格式)的输入数据,并将数据转换为基于用JSON编写的模式。 Golang版本:1.14 ...
XPath是一门在XML文档中查找信息的语言,下面介绍一下java使用xpath和dom4j解析xml的示例,大家参考使用吧
支持xpath解析,就可以可以直接输入一个路径查找: 由于DOM4J在解析XML时只能一层一层解析,所以当XML文件层数过多时使用会很不方便, 结合XPATH就可以直接获取到某个元素 使用dom4j支持xpath的操作...
Chrome浏览器的开发者插件 ,网页爬虫分析器 , xpath 解析 文本的工具
document.getElementById('xmlOpTest').innerHTML += ' 根据xPath得到节点名称和文本值: '+xmlUtils.getTagName(node[0]) + "---" + xmlUtils.getText(node[0])+' '; //得到修改后的文本节点 node ...
如果我们要查找某一个、或者某一块元素的xpath路径,可以按住shift,并移动到这一块中,上面的框就会显示这个元素的xpath路径,右边则会显示解析出的文本内容,并且我们可以自己改动xpath路径,程序也会自动的显示...
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
1、 定位 html 文档中的节点 2、 提取指定节点的属性,比如 href,class 等 3、 获取指定节点的文本,比如 a、p,div,span,div
解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储 1.进行指定标签的定位 2.标签或者标签对应的属性中存储的数据值进行提取(解析) bs4进行数据解析数据解析的原理: 1.标签定位 2.提取标签、...
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
3. **自动化页面解析:** 集成HTML解析器或XPath解析器,自动解析网页内容,提取所需数据,如标题、文字、链接、图片等。 4. **智能去重策略:** 实现智能的URL去重策略,避免重复抓取相同的页面,提高爬取效率。 ...
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...