[英]Execute XPath 3.1 on Java map
我正在从 XPath 1.0 升级到 XPath 3.1。 我将库javax.xml.xpath
用于 XPath 1.0,现在正在使用Saxon-HE
库。 迁移代码非常简单,我使用 S9API 接口来评估 saxon 建议的表达式。
然而,有一小部分代码我似乎无法弄清楚如何迁移:
public static Object getXpathValueFromContentMap(String name, Map<String, Object> content, boolean list) {
try {
if (list) {
return newArrayList(JXPathContext.newContext(content).iterate(name));
} else {
return JXPathContext.newContext(content).getValue(name);
}
} catch (JXPathNotFoundException ignore) {
return null;
}
}
此方法计算 map 上的 xpath 表达式。这可以使用 saxon 库完成吗?如果可以,怎么做?
JXPath(我以前没有遇到过)似乎是 XPath 1.0 的实现(XML 节点视图)Java 数据结构,例如地图和 arrays。
撒克逊没有类似的东西。 对于 XPath 3.1,将 Java 地图和 arrays 解释为 XPath 3.1 地图和 arrays 比通过 XML 节点视图更合适。 但是,执行此操作的 XPath 表达式将大不相同。
理论上可以在 Saxon 中通过外部数据结构提供 XML 映射,但这需要大量工作,而且这似乎不是正确的方法。 但这取决于您有多少 XPath 代码需要转换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.