Java 解释在多个XML文档上应用多个xpath查询的规则
我需要构建一个组件,该组件将在输入中包含一些XML文档,并检查以下规则:Java 解释在多个XML文档上应用多个xpath查询的规则,java,xpath,parsing,interpreter,javacc,Java,Xpath,Parsing,Interpreter,Javacc,我需要构建一个组件,该组件将在输入中包含一些XML文档,并检查以下规则: XML1:/bookstore/book[price>35.00] != null and (XML2:/city/name = 'Montreal' or XML3://customer[@language] contains 'en') 基本上,我的组件应该能够: 用相应的XML文档替换XML标记(冒号之前) 在此XML文档上应用xpath查询 根据预期结果(“=”、“!=”、“包含”)检查xpa
XML1:/bookstore/book[price>35.00] != null
and (XML2:/city/name = 'Montreal'
or XML3://customer[@language] contains 'en')
基本上,我的组件应该能够:
- 用相应的XML文档替换XML标记(冒号之前)
- 在此XML文档上应用xpath查询
- 根据预期结果(“=”、“!=”、“包含”)检查xpath输出
- 遵循基本语法(“and”、“or”和括号)
- 说出规则是真是假
感谢您评估我推荐的XPath Jaxen是一个开源XPath库 用Java编写。它适用于 许多不同的对象模型, 包括DOM、XOM、dom4j和JDOM。 也可以写适配器吗 处理非XML树的 编译的Java字节码或Java bean 作为XML,从而使您能够查询 这些树也使用XPath
(Java5/javax.xml.xpath)也是一个选项,但我还没有尝试过。JavaCC邮件列表上的某个人给我指出了正确的方向,提到了。它引导我找到了目前最好的java实现
Schematron网站声称该语言支持“跨链接和XML文档之间跳转以检查约束”,但Probatron似乎不允许这样做。我可能不想对其进行调整或找到解决方法(比如构建一个包含所有源文档的临时XML文档)。除此之外,Probatron似乎是适合我的库。对于xpath部分,我正在考虑使用JDK API。根据以下基准测试,它似乎比其他库更快,而且我实际上没有性能限制:我的问题更多地涉及如何解释规则和相应地编排解析。对不起,我应该说得更准确一些。谢谢,我已经看到schematron应该能够使用xquery而不是xpath,但不幸的是,java实现(probatron)到目前为止只支持xpath。我将评估所有这些,并查看VTD-XML以构建我的解决方案。