【问题标题】:What is the benefit of using XPath queries instead of XML parsing? [closed]使用 XPath 查询而不是 XML 解析有什么好处? [关闭]
【发布时间】:2011-04-02 08:56:59
【问题描述】:

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

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

【问题讨论】:

  • 你能更具体地说明你所说的“xml解析”是什么意思吗?您是从头开始编写自己的解析器吗?
  • @Richard: 毕竟XPath XML Parsing
  • @Alejandro:XPath 不只是解析 XML 以获得所需信息的简单方法吗?
  • @AAAAAAAAA:除了可能的错误术语外,这是主观的,没有完整的用例。
  • @Eric:不。XPath 语言选择或寻址一些 Infoset 实例。到那时解析 fase 就已经完成了。 XPath 处理逻辑结构,而 XML 解析器处理表面文档。

标签: xml xpath


【解决方案1】:

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

这是因为 XPath 足够通用,可以重用:您可以对不同的 XML 反复使用它,提取不同的信息。如果您需要提取不同的信息,只需对查询进行很小的更改,而不是对大量代码进行较大更改。

使用 XPath 还可以确保如果您离开项目(或者,我不知道,被公车撞到),下一个开发人员(他们的 CV 中有 XPath)将快速轻松地了解如何从 XML 中提取数据。当您将其与他们学习和理解您的自定义 XML 解析代码所花费的时间进行对比时,使用 XPath 对您的团队来说会更好。

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

但是,如果您通过交付产品获得报酬;如果您正在与团队中的其他开发人员一起工作;如果有可能有一天你会留下这段代码并由其他人维护它,那么请使用 XPath。

【讨论】:

  • @Jean-Fr - 我是说如果发生事故,项目知识不应该被孤立在你的脑海中;)
【解决方案2】:

编写解析器是编程中最无聊和错误最多的做法之一。 通过使用标准的解析算法,例如支持 XPath 指向和 XQuery(别忘了 XQuery!),您可以保证两者都有

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

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

干杯。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      嗯,是的,但是你想处理 XML,第一步总是解析它。不同之处在于您在解析数据后如何处理数据。这里有多种选择:处理 SAX 事件、导航 DOM、绑定到 Java 或 C# 对象、使用声明性的 XML 特定语言(如 XPath 和 XQuery)。您没有说您当前正在使用哪些,或者您正在执行什么任务,因此无法解释为什么(或是否)使用 XPath 或 XQuery 会更好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-05
        • 2012-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-06
        相关资源
        最近更新 更多