使用XPath查询而不是XML解析有什么好处?

时间:2011-04-02 08:56:59

标签: xml xpath

到目前为止,我一直在我的应用程序中使用XML解析,但最近我遇到了XPath查询的使用。

我的问题是,从XML获取信息的更好方法是什么? 在哪种情况下应该使用XPath查询。

5 个答案:

答案 0 :(得分:3)

就您的个人发展而言,“编写解析器”在简历中没有位置,但XPath是一种可行的可销售技能。

这是因为XPath足够通用以便可重用:您可以反复使用它来处理不同的XML,从而提取不同的信息。如果您需要提取不同的信息,这是对查询的一个小改动,而不是对大量代码的大量更改。

使用XPath还可以确保如果你离开项目(或者,我不知道,被公共汽车击中),下一个开发人员(他们的CV上有XPath)将能够快速,轻松地理解如何从XML中提取数据。当您将它与学习和理解自定义XML解析代码的时间进行对比时,使用XPath对您的团队更有利。

那么,你什么时候不使用XPath? 当你学习时。如果你正在构建的软件不是一个必须可靠的专业产品,并且你正在编写它,因为你想要了解更多关于XML,递归或无上下文的语法,那就去吧,编写你自己的工具吧!好吧,如果你做得好,也许10年后我们会回答有关为什么人们应该使用AAAAAAAAAPAP而不是XPath的问题。

但是如果你得到报酬来交付产品;如果你和团队中的其他开发人员合作;如果有一天你有可能将这些代码留下来并且其他人将维护它,那么使用XPath。

答案 1 :(得分:2)

第一个好处是,因为已经发明了XPATH查询,所以您不必手动开发(容易出错)的代码来解析XML文档,您只需要学习XPATH语法:)。

答案 2 :(得分:2)

编写解析器是编程中最无聊和最错误的实践之一。 通过使用标准的解析算法,例如一个实现支持XPath指向和XQuery(不要忘记XQuery!)的算法,你保证两者都有

  • 什么应该是最无bug的代码(如果您使用的语言本身不支持XPath / XQuery,请选择一个好的支持库)
  • 最佳表现:您的解析器几乎不会像本机(或库)
  • 那样优化

如果您需要复杂的东西并且XPath不能满足您的所有需求,请考虑使用XQuery。

干杯。

答案 3 :(得分:1)

在我看来,XPath更容易。但这一切都取决于你想要获取的信息量和数量。 这个主题有一些好处:Should I use XPath or just DOM?

答案 4 :(得分:1)

你说:“到目前为止,我一直在我的应用程序中使用XML解析”..

嗯,是的,但是你要处理XML,第一步总是解析它。不同之处在于解析数据后的数据处理方式。这里有一系列的选择:使用声明性的XML特定语言(如XPath和XQuery)处理SAX事件,导航DOM,绑定到Java或C#对象。你没有说你当前正在使用哪一个,或者你正在执行什么任务,所以不可能解释为什么(或者是否)使用XPath或XQuery会更好。

相关问题