Java XML流XPath处理器算法

Java XML流XPath处理器算法,java,xml,xpath,stream,sax,Java,Xml,Xpath,Stream,Sax,我正在用java开发XML流XPath处理器,我希望做的是 1.)将Xpath拆分为元素,并将元素存储在队列中 2.)通过SAX检查XML文件,并在其startElement()方法中检查当前元素是否在队列中 3.)如果它在队列中,则使用字符(…)方法存储元素数据 我的方法正确吗?我陷入了第一步,因为很难检查所有xPath命令来划分元素。有什么简单的方法可以实现第一步吗?例如,如果您定义一个简单的XPath子集 ("/" name ( "[" integer "]" )? )* 然后解析它并不

我正在用java开发XML流XPath处理器,我希望做的是

1.)将Xpath拆分为元素,并将元素存储在队列中

2.)通过SAX检查XML文件,并在其startElement()方法中检查当前元素是否在队列中

3.)如果它在队列中,则使用字符(…)方法存储元素数据


我的方法正确吗?我陷入了第一步,因为很难检查所有xPath命令来划分元素。有什么简单的方法可以实现第一步吗?

例如,如果您定义一个简单的XPath子集

("/" name ( "[" integer "]" )? )*
然后解析它并不困难,将它与SAX流中的事件进行匹配也不是很困难。(尽管名称空间总是一个挑战)


但是你对这个问题的措辞让我怀疑,即使是这个简化的问题,也需要比你目前拥有的更多的经验和/或计算机科学知识:你已经在问这样的问题,这一事实向我表明,你对自己所面临的挑战的规模一无所知。

XPath版本(我们已经有了1.0、2.0、3.0,3.1正在开发中)您想要支持吗?您想要支持哪种XPath表达式和轴?虽然XPath数据模型中有不同类型的节点(元素、属性、文本节点、注释节点、处理指令节点、命名空间节点),但您只讨论元素。目前正在进行有关可流化XSLT 3.0的工作,它认为这是一个相当复杂的主题,因此我不确定关于so的问题是否是正确的解决方法。谢谢您的考虑。我将把范围缩小到您提到的简单XPath表达式。