В чем разница между XSL Pattern и XPath в синтаксисе? - PullRequest
8 голосов
/ 20 января 2010

Я обновляю коды для использования MSXML6.0 из MSXML3.0. Однако я заметил, что для MSXML3.0 «SelectionLanguage» по умолчанию - «XSL Pattern», а MSXML6.0 поддерживает только XPath. У меня есть опасения, что это изменение приведет к различиям в синтаксисе запроса.

Может ли кто-нибудь перечислить разницу синтаксиса между этими двумя синтаксисами?

Ответы [ 4 ]

4 голосов
/ 20 января 2010

XSL Pattern, если я правильно помню, был языком выбора, подобным XPath, но был реализован Microsoft до того, как XPath был стандартизирован (возможно, даже создан). Я не думаю, что у кого-то есть что-то, что документирует XSL Pattern. Вы можете забыть об этом и сосредоточиться на XPath. Он имеет ту же цель, но поддерживается и стандартизируется.

4 голосов
/ 16 мая 2011

Одна вещь, которая меня смутила, это выбор первого узла в наборе узлов. Например, мы использовали MSXML 3.0 (который использует XSLPattern) и имели такие запросы:

/root/book[0]

Этот запрос должен был выбрать первую книгу. Это работает с XSLPattern. Но с XPath это правильно:

/root/book[1]

Поэтому, когда я переключил нас на использование MSXML 6.0, который использует правильный XPath, все эти запросы с «[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:

Вот спецификация W3C для XSLT, которая включает шаблоны XSL:

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

Обновление № 3

Вот еще один пост, описывающий то же, что я упомянул выше:

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

1 голос
/ 16 мая 2011

Шаблоны XSL, по-видимому, являются частью WD-XSL, «рабочего проекта XSL», что означает версии, предшествующие рекомендации XSL (1999), которые значительно отличаются от окончательной версии 1.0.

Microsoft имеет соответствующая информация по "XSL Patterns" .Вот цитата из раздела API-интерфейсы XPath 1.0 :

MSXML 2.0 обеспечивает поддержку шаблонов XSL, предшественников XPath 1.0.Понятие языка адресации XML было введено в исходные рабочие проекты W3C XSL (http://www.w3.org/TR/1998/WD-xsl-19981216.html) и называется XSL Patterns. MSXML 2.0 реализует язык шаблонов XSL, как описано в исходной спецификации XSL, с некоторыми незначительными исключениями.

MSXML 3.0 обеспечивает поддержку устаревшего синтаксиса XSL Patterns, а также XPath 1.0.

0 голосов
/ 20 января 2010

XPath, по моему опыту, намного проще разобраться.Я избегаю XSL, как чума, если могу.Но вы правы, синтаксис сильно отличается, поэтому, если вы хотите переключиться с XSL на XPath, у вас есть работа впереди.Я не могу легко объяснить различия, но этот урок должен дать вам некоторое представление о том, что такое XPath:

http://www.w3schools.com/XPath/xpath_examples.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...