XSL模式和XPath在语法上有什么区别?
我正在从MSXML3.0更新代码以使用MSXML6.0。 但是,我注意到,对于MSXML3.0,默认的SelectionLanguage是XSL模式,而MSXML6.0只支持XPath。 我担心这种更改会在查询语法中引入差异XSL模式和XPath在语法上有什么区别?,xpath,xslt,Xpath,Xslt,我正在从MSXML3.0更新代码以使用MSXML6.0。 但是,我注意到,对于MSXML3.0,默认的SelectionLanguage是XSL模式,而MSXML6.0只支持XPath。 我担心这种更改会在查询语法中引入差异 有人能列出这两种语法之间的区别吗?根据我的经验,XPath更容易理解。如果可以的话,我会像瘟疫一样避免XSL。但是您是对的,语法非常不同,因此如果您想从XSL切换到XPath,您需要做一些工作。我无法轻松解释这些差异,但本教程应该让您了解XPath的含义: 如果我没记错的话
有人能列出这两种语法之间的区别吗?根据我的经验,XPath更容易理解。如果可以的话,我会像瘟疫一样避免XSL。但是您是对的,语法非常不同,因此如果您想从XSL切换到XPath,您需要做一些工作。我无法轻松解释这些差异,但本教程应该让您了解XPath的含义:
如果我没记错的话,XSL模式是一种类似于XPath的选择语言,但在XPath标准化之前就由Microsoft实现了。我认为任何人都不再有任何记录XSL模式的东西了。基本上,您可以忘记它,而专注于XPath。它具有相同的用途,但得到了支持和标准化。有一件事让我大吃一惊,那就是选择了节点集中的第一个节点。例如,我们一直在使用MSXML 3.0,它使用XSLPattern并具有如下查询:
/root/book[0]
这个查询应该选择第一本书。这适用于XSLPattern。但对于XPath,这是正确的:
/root/book[1]
因此,当我切换到使用MSXML6.0(使用正确的XPath)时,所有带有[0]的查询都停止了工作
更新:
我刚刚找到了这个链接,它详细介绍了XSLPattern和XPath:
MSDN杂志:MSXML3.0支持XPath1.0、XSLT1.0、XDR和SAX2
更新2:
以下是W3C关于XSLT的规范,其中包括XSL模式:
更新3
这里有另一篇文章描述了我上面提到的同样的事情:
XSL模式似乎是WD-XSL工作草案XSL的一部分,这意味着XSL建议1999之前的版本与最终的1.0版本有很大的不同 微软拥有这一优势。这里引用了XPath 1.0 API一节: MSXML2.0提供了对XSL模式的支持,XSL模式是XPath1.0的前身。最初的W3CXSL工作草案中引入了XML寻址语言的概念http://www.w3.org/TR/1998/WD-xsl-19981216.html 并称之为XSL模式。MSXML2.0实现了原始XSL规范中描述的XSL模式语言,但有几个小的例外 MSXML3.0提供了对传统XSL模式语法以及XPath1.0的支持
XSL模式与XSL不同。XSL模式非常模糊