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

标签 xpath xslt

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

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

最佳答案

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

/root/book[0]

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

因此,当我切换到使用正确 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

关于xpath - XSL Pattern 和 XPath 在语法上有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2099880/

相关文章:

xml - 使用 XSL 删除所有 XML namespace ,但只有一个

javascript - 如何通过selenium获取ExtJS combobox的选中值?

xml - 需要在特定元素之后获取所有元素

c# - Xpath 无法解析 XML : Namespace manager or XsltContext needed

html - XPath - 选择不包含元素的元素

css - XSL 无法用 Firefox 解析

xslt - 删除特定元素的命名空间

python - 选择同一节点的元素

ruby - OS X 上的 xslt 2.0 和 Ruby

html - 如何知道何时在嵌套元素上放置结束标记