解析xpath获取到的标签
发布时间:2020-12-16 23:24:47 所属栏目:百科 来源:网络整理
导读:一、book.xml ? xml version="1.0" encoding="UTF-8" ? bookstore book category ="children" title lang ="en" Harry Potter / title author J K. Rowling / author year 2005 / year price 29.99 / price / book book category ="cooking" title lang ="en
一、book.xml <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book category="children"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="web"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> <book category="web"> <title lang="uk">XQuery Kick Start</title> <author>James McGovern</author> <year>2003</year> <price>49.99</price> </book> </bookstore> package edu.aeon.xml; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; /** * [说明]:xpath获取节点 * @author aeon(qq:1584875179) * */ public class XpathParser { public static void main(String[] args) { try { DocumentBuilderFactory documentBuilderFactory=DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder=documentBuilderFactory.newDocumentBuilder(); Document document=documentBuilder.parse("config/book.xml"); XPath xPath= XPathFactory.newInstance().newXPath(); /** * 获取 bookstore 节点下 book 属性 category 值为 web 下的第二个 title 节点的文本内容 * xpath路径为:/bookstore/book[@category=‘web‘][2]/title/text() */ String str1=(String) xPath.evaluate("/bookstore/book[@category=‘web‘][2]/title/text()",document,XPathConstants.STRING); System.out.println(str1); /** * 获取 bookstore 节点下 book 属性 category 值为 web 的 title 属性lang为en 的节点内容 * xpath路径为:/bookstore/book[@category=‘web‘]/title[@lang=‘en‘]/text() */ String str2=(String) xPath.evaluate("/bookstore/book[@category=‘web‘]/title[@lang=‘en‘]/text()",XPathConstants.STRING); System.out.println(str2); /** * 获取bookstore下book属性category值为cooking的title的lang属性的值 * xpath路径为:/bookstore/book[@category=‘cooking‘]/title/@lang */ String str3=(String) xPath.evaluate("/bookstore/book[@category=‘cooking‘]/title/@lang",XPathConstants.STRING); System.out.println(str3); /** *获取 bookstore 节点下所有 book 的节点集合 */ NodeList nodeBookList=(NodeList) xPath.evaluate("/bookstore/book",XPathConstants.NODESET); for(int i=0;i<nodeBookList.getLength();i++){ Element element=(Element) nodeBookList.item(i); String titleValue=(String) xPath.evaluate("title",element,XPathConstants.STRING); String authorValue=(String) xPath.evaluate("author",XPathConstants.STRING); String yearValue=(String) xPath.evaluate("year",XPathConstants.STRING); String priceValue=(String) xPath.evaluate("price",XPathConstants.STRING); System.out.println(titleValue+" "+authorValue+" "+yearValue+" "+priceValue); System.out.println("========================================="); } } catch (Exception e) { e.printStackTrace(); } } } 结果截图: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |