XPath,XQuery和XPointer之间的区别

时间:2009-05-29 05:42:22

标签: xml xpath xquery

XPathXQueryXPointer之间有什么区别?据我所知,XQueryXPath的扩展版本。我对XPath有一些基本的了解。 XPath中是否有任何功能不在XQuery中?昨天,我听到一个新词XPointer。我很迷惑。哪种语言用于哪种目的?

4 个答案:

答案 0 :(得分:58)

维基百科是一个很好的开始这样的问题的地方。通常,XPath是一种用于简洁地确定DOM中精确XML节点的语言。 XQuery是XPath的超集,它还提供FLWOR语法,类似于SQL。最后,XPointer包括XPath,但也提供了一种更简单的基于位置的寻址方案。

当然,您可以随时阅读W3C规范以获取完整的详细信息。

答案 1 :(得分:51)

虽然马修的答案给人留下了良好的第一印象,但还有很多关于上述标准的说法,还有更多相关的标准。 XML Holland用户组杂志上发表了一篇很好的文章,该文章讲述了XQuery的历史,并将各种标准纳入考虑范围。第一部分非常相关:

  

XQuery代表XML Query Language。这已经说明了本质。它是一种从大量XML文件中选择子集和子结构的语言。结果可以被操纵成适合用于例如后续过程或在web浏览器中显示的内容。 XPath在XQuery中经常使用。

     

所有XML标准都有自己的范围。我只举几例。 XSLT是一种将XML转换为其他格式的语言。 XPointer是XPath的扩展,可以在XML片段甚至节点的子部分中更准确地处理节点。 XLink是定义关系的标准。 XInclude是使用例如XLink关系将多个XML组合成一个标准的标准。 XProc是一个标准,可以用它描述如何处理XML文档以获得所需的最终结果。它以XML表示,并逐步描述该过程,也称为XML管道。在XProc中你使用a.o. XQuery,XSLT和XInclude语言(以及间接的XPath,XPointer和XLink)来表达每个步骤中需要完成的工作。

     

所有这些标准都捆绑在一起。它们是相互关联的,相互依赖。您可以在W3Schools找到的下一张图片中总结了一些上述XML标准之间的重叠:

What is XPath

完整文章可在此处找到:http://grtjn.blogspot.nl/2011/10/xquery-novelties-revisited.html

HTH!

答案 2 :(得分:17)

嗯,我认为XQuery值得一提。 XPath和XPointer几乎相同,用于选择XML节点。另一方面,XQuery是XPath的一个很大的扩展。例如,它提供了声明自定义函数的可能性。所以它更像是编程语言,它本身与XML一起工作。 您可以在此处查看一些示例:embedding-xquery-in-java

此致

答案 3 :(得分:5)

XPath故意限于读取现有节点。

作为XSLT,XQuery可以创建节点。它还可以更新节点(使用XQuery Update Facility)。

从我的XQuery实现者的角度来看; - )