2016-04-21 49 views
0

我处理一组二进制文件并为每个文件生成一个树(因为它们本身具有层次结构)。我想使用XPath来搜索和选择文件中的节点,并且不想编写自己的XPath引擎。 XPath查询将在运行时提供。手动构建XML文档或实现dom接口或...?

  • 尝试实现组成我的树的类的dom接口是否有意义(使它看起来像是一个XML文档)?这样我就可以尝试将我的duckish XML文档提供给XPathExpression。
  • 我应该只是字符的子弹,并实现我自己的XPath引擎,将'只对我的类工作'?
  • 我是否应该手动构建XML文档并支付toString成本?
  • 或者是否有一些非常简单的解析我的二进制文件到XML的方式,我完全错过了快速解析和快速执行XPath查询?

我也真的不想浪费我的时间通过实现dom接口只发现XPathExpression会呛或我也必须实现XPathExpression。

我真的不想写我自己的XPath引擎。

+0

是否可以将这些二进制文件转换为XML文件?这似乎是更简单的方法 –

回答

0

实现DOM接口是一种简单且几乎无痛的解决方案。我很惊讶地发现它的工作!事实证明,只要你提供实现接口的东西,Java的XPath库就不会在意。你甚至不需要实现大部分的方法。你只需要实现(某些)获取器,其他的都可以抛出一个未实现或只读的异常。

对于那些将来阅读此文档的人员,应该实现完整的界面,然后使用这些方法构建树。原因是否则设置兄弟姐妹和父母关系是丑陋的。无论如何,你将不得不编写代码,不妨把它放在正确的地方。