XPath,XQuery和XPointer之间的区别
XPath
, XQuery
和XPointer
什么区别? 据我所知, XQuery
是XPath
的扩展版本。 我有一些XPath
基本知识。 XPath
中有没有可用的function,它不在XQuery
? 昨天,我听到一个新词, XPointer
。 我很困惑。 哪种语言被用于哪个目的?
维基百科是一个很好的开始这样的问题的地方。 一般来说, XPath是一种用来简洁地查明DOM中的确切XML节点的语言。 XQuery是XPath的超集,它也提供了FLWOR语法,类似于SQL。 最后, XPointer包含XPath,但也提供了一个更简单的基于位置的寻址scheme。
当然,您可以随时阅读W3C规范了解详细信息。
虽然马修的回答给人一个好的第一印象,但是还有很多关于上述标准的讲述,还有更多是相关的。 XML荷兰用户组杂志在网上发布了一篇很好的文章,讲述了很多关于XQuery的历史,并将这些标准从各个angular度展开。 第一部分在这里非常相关:
XQuery代表XML查询语言 。 这已经说明了本质。 这是一种从大量XML文件中select子集和子结构的语言。 结果可以被操纵成适合在例如后续过程中使用的东西,或者显示在networking浏览器中。 XPath在XQuery中使用了很多。
所有的XML标准都有自己的范围。 我会列举一些。 XSLT是一种将XML转换为其他格式的语言。 XPointer是XPath的扩展,用于在XML片段或甚至子节点中更准确地寻址节点。 XLink是定义关系的标准。 XInclude是一个使用XLink关系将多个XML组合成一个XML的标准。 而XProc是一个标准,可以描述如何处理XML文档以达到期望的最终结果。 它用XML表示,并逐步描述了这个过程,也称为XMLpipe道。 在XProc中,你可以使用XQuery,XSLT和XInclude语言(也可以间接使用XPath,XPointer和XLink)来表示每一步中需要完成的工作。
所有这些标准都捆绑在一起。 他们是相关的,相互依赖。 在下面的图片中,您可以在W3School上find一些提到的XML标准之间的重叠:
全文可以在这里find: http : //grtjn.blogspot.nl/2011/10/xquery-novelties-revisited.html
HTH!
那么,我认为XQuery是值得区分的东西。 XPath和XPointer几乎相同,用于XML节点select。 另一方面,XQuery是XPath的一个很大的扩展。 例如,它提供了声明自定义函数的可能性。 所以它更像是一种编程语言,它使用XML本身工作。 你可以在这里查看一些示例: embedding-xquery-in-java
问候
XPath有意限制读取现有节点。
作为XSLT,XQuery可以创build节点。 它也可以更新节点(使用XQuery更新工具)。
从我的XQuery实现者的angular度来看;-)