XSL Pattern和XPath在语法上有什么区别?

Rog*_*Cui 8 xslt xpath

我正在更新代码以使用MSXML3.0中的MSXML6.0.但是,我注意到,对于MSXML3.0,默认的"SelectionLanguage"是"XSL Pattern",而MSXML6.0只支持XPath.我担心此更改会在查询语法中引入差异.

有人可以列出这两种语法之间的语法差异吗?

Tom*_*ter 5

令我失望的一件事是选择节点集中的第一个节点。例如,我们一直在使用 MSXML 3.0(使用 XSLPattern)并且有这样的查询:

/root/book[0]
Run Code Online (Sandbox Code Playgroud)

这个查询应该选择第一本书。这适用于 XSLPattern。但是对于 XPath,这是正确的:

/root/book[1]
Run Code Online (Sandbox Code Playgroud)

因此,当我切换到使用正确 XPath 的 MSXML 6.0 时,所有带有“[0]”的查询都停止工作。

更新:我刚刚发现这个链接更多地讨论了 XSLPattern 和 XPath:

MSDN 杂志:MSXML 3.0 支持 XPath 1.0、XSLT 1.0、XDR 和 SAX2

http://msdn.microsoft.com/en-us/magazine/cc302348.aspx

更新#2:

这是关于 XSLT 的 W3C 规范,其中包括 XSL 模式:

http://www.w3.org/TR/1998/WD-xsl-19981216.html#AEN376

更新 #3

这是另一篇文章,描述了我上面提到的同一件事:

http://www.eggheadcafe.com/software/aspnet/29579789/xml-parsing.aspx


Nic*_*son 4

如果我没记错的话,XSL 模式是一种类似于 XPath 的选择语言,但它是在 XPath 标准化(甚至可能创建)之前由 Microsoft 实现的。我认为任何人都不再拥有任何记录 XSL 模式的东西。您基本上可以忘记它并专注于 XPath。它具有相同的目的,但受到支持和标准化。