Есть ли элемент имени XSLT?

Никто не указал на тонкую разницу в семантике функций name() и local-name().

  • name(someNode) возвращает полный имя узла, включая префикс и двоеточие в случае, если узел является элементом или атрибутом.
  • local-name(someNode) возвращает только локальное имя узла, и это не включает префикс и двоеточие в случае, если узел является элементом или атрибут.

Следовательно, в ситуациях, когда xsltransform имя может принадлежать двум xpath разным пространствам имен, необходимо xml-transform использовать функцию name(), чтобы xpath эти имена по-прежнему различались.

И, кстати, можно указать обе функции без аргументов:

name() - это xsltransform сокращение от name(.)

local-name() - это сокращение xslt от local-name(.)

Наконец, помните, что не только xpath элементы и атрибуты имеют xsltproc имена, эти две функции также xml могут использоваться на PI, и xpath на них они идентичны).

xml

xslt

xpath

2022-10-28T07:08:48+00:00