Java 8 xpath 示例 - 评估字符串的 xpath

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(261)   2023-06-26 07:54:18

评估字符串的 xpath 并在字符串本身中返回结果 XML 的 Java 示例。

1. XPath 示例——在 xml 字符串上计算 xpath

  1. 创建包含 org.xml.sax.InputSourceStringReader 引用 XML 字符串。
  2. XPath 创建 XPathFactory
  3. 使用 xpath.evaluate('expression', inputSource) 获取结果 HTML。
package com.cundage.demo;

import java.io.StringReader;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;

public class XPathExample 
{
	public static void main(String[] args) throws Exception 
	{

		String xml = "<employees>"
					+ "<employee id=\"1\">"
						+ "<firstName>Lokesh</firstName>"
						+ "<lastName>Gupta</lastName>"
						+ "<department><id>101</id><name>IT</name></department>"
					+ "</employee>"
				   + "</employees>";
		
		InputSource inputXML = new InputSource( new StringReader( xml ) );
		
        XPath xPath = XPathFactory.newInstance().newXPath();
        
        String result = xPath.evaluate("/employees/employee/firstName", inputXML);

        System.out.println(result);
    }
}

程序输出:

Lokesh

2. XPath 示例——在 xml 文件上计算 xpath

package com.cundage.demo;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;

public class XPathExample 
{
	public static void main(String[] args) throws Exception 
	{

		String xmlFile = "employees.xml";
		
		//Get DOM
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document xml = db.parse(xmlFile);

        //Get XPath 
        XPathFactory xpf = XPathFactory.newInstance();
        XPath xpath = xpf.newXPath();
        
        //Get first match
        String name = (String) xpath.evaluate("/employees/employee/firstName", xml, XPathConstants.STRING);
        
        System.out.println(name);	//Lokesh
        
        //Get all matches
        NodeList nodes = (NodeList) xpath.evaluate("/employees/employee/@id", xml, XPathConstants.NODESET);
        
        for (int i = 0; i < nodes.getLength(); i++) {
        	System.out.println(nodes.item(i).getNodeValue());	//1 2
        }
    }
}

程序输出:

Lokesh
1
2

输入的 xml 文件是:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employees>
    <employee id="1">
        <firstName>Lokesh</firstName>
        <lastName>Gupta</lastName>
        <department>
            <id>101</id>
            <name>IT</name>
        </department>
    </employee>
    <employee id="2">
        <firstName>Brian</firstName>
        <lastName>Schultz</lastName>
        <department>
            <id>102</id>
            <name>HR</name>
        </department>
    </employee>
</employees>

在上面的 Xpath 教程中,我们学习了如何通过示例评估字符串上的 xpath。

快乐学习!!

更多参考:

Java xpath 文件示例
Java xpath 教程
如何在 java 中使用 xpath 获取 xml 中的属性值

标签2: Java XML XPath
地址:https://www.cundage.com/article/evaluate-xpath-on-xml-string.html

相关阅读

Java xpath 示例 读取 XML 文件并解析为 DOM 对象,然后评估 org.w3c.dom.Document 对象上的 xpath 并获得结果以 String 或 NodeList ...
评估字符串的 xpath 并在字符串本身中返回结果 XML 的 Java 示例。 1. XPath 示例——在 xml 字符串上计算 xpath 创建包含 org.xml.sax.InputSo...
很多时候我们需要解析一个 XML 文件并从中提取信息。例如,使用 xpath 读取 XML 元素的属性值。在此 Java XPath 教程中,学习从 XML 字符串获取属性值。 我正在使用 jd...
Java xpath 表达式示例,通过评估这些表达式从 XML 文档中提取信息。我们将学习获取信息以匹配属性值、匹配字段值、contains() 表达式等。 1. XPath 查询示例 1.1....
如何使用 xpath 在 xml 中获取属性值的简单示例在爪哇。我们将学习获取信息以匹配属性值、范围内的属性值、xpath attribute contains() 等等。 1. XPath属性...
使用 XPath 在给定 XML 内容中检查节点是否存在或在 XML 中检查属性是否存在的 Java 示例。 1、如何判断xml节点是否存在? 要验证节点或标记是否存在于 XML 内容中,您可以...
在此 java 示例中,我们将学习使用 NamespaceContext 具有命名空间声明和各自的用法。 命名空间添加了 XML 文件 我创建了 sample.xml 文件并放入类路径中。 &l...
JDOM 解析器 可用于读取 XML、解析 xml 以及在更新 XML 文件内容后写入 XML 文件。它将JDOM2 文档 存储在内存中以读取和修改它的值。 将 XML 文档加载到内存后,JDO...
学习使用 XmlUnit 附带的 XmlAssert 来验证 XML 文档、测试 XPath 表达式并断言 XML 节点或值图书馆。这是使用 XmlAssert 的快速参考。 import st...
读取 XML 文件和打印 XML 字符串以控制或将 XML 写入文件的 Java 示例。 1) 将 XML 转换为字符串 转换 XML 对象即 org.w3c.dom.Document 成字符串...