Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
好的免费Java XPath计算器源代码-也许是JXPath?_Java_Xpath_Equivalent - Fatal编程技术网

好的免费Java XPath计算器源代码-也许是JXPath?

好的免费Java XPath计算器源代码-也许是JXPath?,java,xpath,equivalent,Java,Xpath,Equivalent,有好的免费XPath计算器源代码吗 我们有一个树型数据结构,它与XML没有太大的不同。但是,最好包含类似于XPath计算器(轻量级)的内容,以便在结构中导航 对于XPath表达式,例如: \节点1*\Child20* \节点1 总和(\Node1*\value) 等等等等 我认为我们自己实施一个解决方案需要一段时间,但不幸的是,我们的时间非常紧迫。我们需要源代码,以便能够基于标记化字符串遍历我们的结构 我不是在寻找XPath库本身,只是寻找计算XPath风格表达式的代码 我希望能够解释基于XPa

有好的免费XPath计算器源代码吗

我们有一个树型数据结构,它与XML没有太大的不同。但是,最好包含类似于XPath计算器(轻量级)的内容,以便在结构中导航

对于XPath表达式,例如:

\节点1*\Child20* \节点1 总和(\Node1*\value)

等等等等

我认为我们自己实施一个解决方案需要一段时间,但不幸的是,我们的时间非常紧迫。我们需要源代码,以便能够基于标记化字符串遍历我们的结构

我不是在寻找XPath库本身,只是寻找计算XPath风格表达式的代码

我希望能够解释基于XPath的表达式并处理我们自己的内部数据结构——我们自己的对象模型实现

我在旅行中遇到过,但从未使用过,但它似乎是我可以使用的东西。有人用过这个吗

谢谢


Andez

HTML Cleaner
非常好,我总是将此库用于Xpath解析器。您可以尝试:

Java内置了XPath支持

以下代码提取xpath表达式的值:

String xml = ".... your xml goes here ...";
String expression = "... your XPath goes here ...";
DocumentBuilderFactory xmlFact = DocumentBuilderFactory.newInstance();
xmlFact.setNamespaceAware(true);
DocumentBuilder builder = xmlFact.newDocumentBuilder();
InputSource inputSource = new InputSource(new StringReader(xml));
Document doc = builder.parse(inputSource);
XPath xpath = XPathFactory.newInstance().newXPath();
String value = (String) xpath.evaluate(expression, doc, XPathConstants.STRING);

您将在ApacheXalan中找到Java中XPath的完整开源实现

如果为数据结构编写适配器以实现Saxon的NodeInfo接口,Saxon的XPath引擎将与任何输入数据结构一起工作。与修改XPath处理器的源代码相比,这似乎是一种更为简洁的方法,您必须永远维护XPath处理器的源代码。

JXPath应该适合这一点。但您可能必须将其与数据结构集成,如中所述

我最近做了一件类似的事情,效果很好。文档有点弱,但从外观上看,像domnodepenter/Dom***迭代器这样的现有实现应该对您的实现有很大帮助


为了完整性,Jaxen将允许类似的方法。但是由于许可的原因,我自己无法使用它。

我认为dom4j库允许您在JavaBean“树”上创建文档,并使用XPath.Hi查询它。我没有使用底层XML。我们有自己的数据结构(类似于XML类型树),但我想使用基于XPath的表达式来导航我们的结构并返回我们的自定义底层类型——类似于XPath。我不明白“类似XML”是什么意思。如果格式正确,您可以应用XPath表达式。@a\u horse\u和\u no\u名称:他想查询自定义对象树,而不是XML文档。XPath(理论上)支持的东西。Saxon源代码发行版中包含了DOM、JDOM、XOM和DOM4J的适配器。