Функции XSL в Powershell / .NET вызывают ошибку «Неожиданный токен»

1

Я пытаюсь использовать объекты XSLT в.NET через Powershell.

У меня есть следующие строки в моем документе XSL

<xsl:variable name=""p"" select=""Objects/Object/Property[@Name='distrolists']""/>
<xsl:value-of select=""replace($p, 'oldtext', 'newtext')""/>

И я настраиваю объект XslCompiledTransform следующим образом:

$xsltsettings = new-object System.Xml.Xsl.XsltSettings($true,$true)
$tr = new-object System.Xml.Xsl.XslCompiledTransform
$tr.Load($xsl, $xsltsettings,$(New-Object System.Xml.XmlUrlResolver))
$results = [System.Xml.XmlWriter]::Create("C:\output.html")
$tr.Transform($x,$results)

Однако, когда я его выполняю, я получаю следующую ошибку:

Exception calling "Load" with "3" argument(s): "Unexpected token ',' in the expression.
replace( -->,<--  'oldtext', 'newtext')"

Похоже, что у.NET возникают некоторые проблемы, анализирующие запятые в функциях XSL. Я в значительной степени не понимаю, что случилось с моим XSL (или, возможно, процессор сломан).

Конечная цель этого раздела - взять список адресов электронной почты, разделенный на \r\n, и отобразить их по строке с помощью <br/>.

  • 3
    replace - это функция XSLT 2.0, но XslCompiledTransform использует XSLT 1.0, поэтому функция не будет поддерживаться.
  • 0
    Любая функциональность .NET, которая поддерживает XSLT 2.0?
Показать ещё 1 комментарий
Теги:
powershell
xslt

1 ответ

-1

Как отметил @Tim C:

replace - это функция XSLT 2.0, но XslCompiledTransform использует XSLT 1.0, поэтому функция не будет поддерживаться.

Вы должны взглянуть на Saxon-HE, если вам нужна функциональность XSLT 2.0 в.NET.

  • 0
    Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий под своим постом.
  • 0
    Первый комментарий @Tim C должен был быть ответом. Поскольку вы, по-видимому, являетесь сотрудником полиции SO, пожалуйста, дайте мне знать, как обеспечить, чтобы вопрос был помечен как ответ, не требуя подтверждения ответа, кроме как я это сделал.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню