0 0

如何直接从String里用xpath查询?5

比如我有一个String就是"<abc>xxx</abc>";我知道这个String是符合xml格式的(除了没有xml或html头部),怎么用xpath直接查这个String?即比如我想查"\\abc\text()"。怎么写?
2014年7月25日 17:35

4个答案 按时间排序 按投票排序

0 0

没有dom4j的包
正常解析xml 希望能对你有帮助:

<?xml version="1.0" encoding="UTF-8"?>
<user>
<abc>133</abc>
</user>



package cn.com.wangxiuwei.test;

import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class TestXpath {

/**
* @param args
* @throws ParserConfigurationException
* @throws IOException
* @throws SAXException
*/
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document d=db.parse("src/testxpath.xml");
String strxpath = "//user/abc";
NodeList nl=d.getElementsByTagName("abc");
System.out.println(nl.item(0).getTextContent()+"   "+nl.item(0).getParentNode().getNodeName());
}

}

打印结果:
133   user

2014年7月26日 04:52
0 0

1.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<company name="www.java-connect.com" address="Bangalore" country="INDIA">
      <person>
            <personid>000001</personid>
            <name>Mahendra</name>
            <age>29</age>
      </person>
      <person>
            <personid>000004</personid>
            <name>Rajendra</name>
            <age>34</age>
      </person>
      <person>
            <personid>000007</personid>
            <name>Surendra</name>
            <age>22</age>
      </person>
      <person>
            <personid>000019</personid>
            <name>Manmohan</name>
            <age>31</age>
      </person>
</company>

2.java文件查询
package com.lance;

import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

public class Dom4jSample {
	public static void main(String[] args) throws DocumentException {
		
        SAXReader reader = new SAXReader();        
        Document doc = reader.read("src/test/java/com/lance/person.xml");
        String xpathExpression = "//company/person/personid/name";
        List<Node> nodes = doc.selectNodes(xpathExpression);
        
        if(nodes == null || nodes.isEmpty()) {
        	System.out.println("没有查询数据");
        }
	}
}

2014年7月25日 22:24
0 0

这有个2工具类.其中XPathUtils有对字符串查询的
https://github.com/terheyden/XPathDemos

2014年7月25日 18:01
0 0

解析xml字符串一般用jsoup

如果

String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>";
Document doc = Jsoup.parse(html);
Element link = doc.select("a").first();

String text = doc.body().text(); // "An example link"
String linkHref = link.attr("href"); // "http://example.com/"
String linkText = link.text(); // "example""

String linkOuterH = link.outerHtml(); 
    // "<a href="http://example.com"><b>example</b></a>"
String linkInnerH = link.html(); // "<b>example</b>"

2014年7月25日 17:46

相关推荐

    Xpath注入攻击及其防御技术研究

    当一个Web应用将用户提供的数据直接嵌入到XPath查询语句中而不进行任何验证或转义时,攻击者就可以构造恶意的XPath表达式,从而实现攻击目的。例如,攻击者可以通过修改URL中的参数值来尝试执行任意XPath查询,以此...

    xpathhelper

    1. 实时XPath查询:用户可以直接在浏览器中输入XPath表达式,插件会立即高亮显示匹配的元素,方便查看结果。 2. 快速定位:对于网页上的任何元素,XPathHelper可以提供最简化的XPath路径,帮助用户快速找到目标元素...

    XPath从入门到精通

    - **字符串(string)**: 由字符组成的序列,XPath提供了多种字符串操作函数。 - **数值(number)**: 表示浮点数,包括特殊值如NaN、infinity、-infinity和0。可以与布尔值和字符串类型转换。 3. **XPath节点类型** ...

    对Xpath 获取子标签下所有文本的方法详解

    本文将深入探讨如何使用XPath来获取子标签下的所有文本内容。 在XML或HTML结构中,一个元素可能包含多个子元素,每个子元素又可能有各自的文本内容。有时,我们可能需要提取某个父元素下所有子元素的文本,而不仅仅...

    python神奇xpath

    - **寻找独立节点**:如果只需要文档中的某一部分,可以直接通过XPath定位到该节点。 #### Chrome生成法 对于复杂的HTML文档,手动编写XPath路径可能较为困难。这时可以使用Chrome浏览器的开发者工具来辅助生成...

    Python库 | xpath_string-0.0.2-py3-none-any.whl

    本文将围绕“xpath_string-0.0.2-py3-none-any.whl”这个Python库,深入探讨其功能、使用方法以及在实际项目中的应用。 首先,我们来了解什么是“xpath_string”。这是一个Python库,主要功能是处理和操作XPath字符...

    xpath语法与函数

    XPath使用路径表达式来定位XML文档中的节点。路径表达式类似于文件系统的路径。例如,“/”表示文档的根节点,而“/child”则表示根节点的直接子节点。 #### XPath轴 XPath轴定义了如何从当前节点遍历到其他节点。...

    XPath 教程.doc

    5. **数据库查询**:某些数据库系统支持XPath查询,可以在SQL查询中使用XPath表达式来定位和检索XML文档中的数据。 #### 六、XPath 的高级特性 1. **变量与参数**:XPath 2.0 引入了变量和参数的概念,允许在...

    XPath详解PDF版

    通过理解基本的路径表达式、使用双斜线和星号进行选择以及了解XPath提供的各种轴和函数,开发者可以有效地从复杂的XML文档中获取所需的信息。掌握XPath不仅能够提高开发效率,还能使数据处理变得更加灵活高效。

    调用google地图服务并用xpath解析返回结果

    此外,考虑到XML解析的效率和易用性,还可以考虑使用更高级的XML解析库,如JDOM或DOM4J,而不是直接使用XPath。 总的来说,调用Google Maps服务并使用XPath解析返回结果涉及了网络请求、XML解析以及API的使用等多个...

    Dom,Sax,Xpath解析XML实例

    在实际开发中,XPath常与DOM或SAX结合使用,先由DOM或SAX解析XML,然后用XPath进行查询。 实例应用: 假设我们有一个XML文件,内容如下: ```xml &lt;name&gt;John Doe &lt;position&gt;Manager &lt;name&gt;Jane Smith ...

    Java开源的xpath解析器Jsoupxpath.zip

    非常不建议直接粘贴Firefox或chrome里生成的Xpath,这些浏览器在渲染页面会根据标准自动补全一些标签,如table标签会自动加上tbody标签,这样生成的Xpath路径显然不是最通用的,所以很可能就取不到值。所以,要使用...

    Java版本的XPath方式解析jar和源代码

    这些源码和库可以帮助理解XPath的工作原理,也可以直接使用,节省开发时间。 总的来说,XPath是XML处理的重要工具,而Java提供了强大的支持来利用XPath的强大功能。在Java或Android开发中,掌握XPath能有效提升XML...

    xpath使用文档,初学者非常有用

    我们可以使用XPath表达式如 `//B[@id='b1']` 来选取ID为“b1”的B元素,或者用 `/A/B/C/E[2]` 来选取第二个E元素。 XPath还提供了丰富的函数库,比如`text()`用于选取节点的文本内容,`count()`计算节点个数,`...

    Xpath筛选数据

    4. **XPath应用**:在Python中,我们可以通过`tree.xpath()`方法执行XPath查询。例如,筛选出所有的职位链接(假设链接在`&lt;a&gt;`标签的`href`属性中): ```python job_links = tree.xpath('//a[@class="job-name"]/...

    Demo4j和XPath解析XML的文件路径表达式(ZVON.org - X 路径教程)

    Demo4j不直接包含XPath功能,但可以与其他库(如JDOM或DOM4J)结合使用,以实现XPath查询。DOM4J是Java中一个流行的XML处理库,它提供了XPath的支持。 在集成DOM4j和XPath时,首先需要创建一个Document对象,这代表...

    XPath简明教程

    XPath使用类似于计算机文件系统的路径表达式来定位XML文档中的节点或节点集合。例如,`/books/book/title`表示从根节点开始选择所有`&lt;book&gt;`元素下的`&lt;title&gt;`元素。 #### 1.3 XPath标准函数 XPath包含超过100个...

    xml查询语言 xpath 参考文档,有比较好的示例

    ### XML 查询语言 XPath 参考文档知识点解析 #### 核心概念:XPath 是什么? XPath 是一种用于在 XML 文档中查找信息的语言。正如标题所言,“xml查询语言 xpath 参考文档,有比较好的示例”,这表明文档旨在帮助...

    关于引入com.sun.org.apache.xpath.internal.operations.String后右键RUN选项消失

    而`com.sun.org.apache.xpath.internal.operations.String`虽然名称相似,但其作用和使用场景完全不同,主要服务于XPath解析和处理,通常不应直接在常规代码中使用。 当发现此类问题时,应该立即检查代码中的`...

    根据路径取得xml节点,返回string数组

    在IT行业中,XML(eXtensible ...如果需要进一步优化或处理复杂情况,可以考虑使用如`javax.xml.xpath.XPath`接口和`XPathConstants.NODESET`常量来执行XPath查询,或者使用SAX或StAX解析器进行更高效的流式处理。

Global site tag (gtag.js) - Google Analytics