XPath
,XQuery
和XPointer
之间有什么区别?据我所知,XQuery
是XPath
的扩展版本。我对XPath
有一些基本的了解。 XPath
中是否有任何功能不在XQuery
中?昨天,我听到一个新词XPointer
。我很迷惑。哪种语言用于哪种目的?
答案 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标准之间的重叠:
完整文章可在此处找到: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实现者的角度来看; - )