2010-02-23 1 views
1

У меня XSLT, который создает HTML из XML. Есть несколько частей полученного HTML, которые мне нужно создать внешним методом C# (метод расширения).Как вставлять HTML, созданный кодом C# в XSL?

  1. Как встроить этот метод C# в XSLT (в пределах того, что XSL узлы? Я знаю, как использовать общие функции расширения внутри XSLT)
  2. Какой должна моего возвращения # функции C? Строка в формате HTML? С экранированными тегами HTML или без?

спасибо!

ответ

0

Ну, если вы хотите вернуть суп из тэга HTML, не соответствующий правилам XML, тогда вы можете только вернуть строку, а затем использовать, например. <xsl:value-of select="pf:yourFunction()" disable-output-escaping="yes"/>. Если вы хотите построить узел узлов или фрагмент результирующего дерева, тогда проверьте the documentation, он отображает сопоставление между типами XSLT и типами .NET. если вы хотите, чтобы ваша функция возвращала результат, который XSLT видит как набор узлов, используйте тип XPathNodeIterator в качестве возвращаемого типа .NET вашей функции расширения.

+0

Большое спасибо за ваш ответ! Я собираюсь использовать первый вариант. Я уже пытался использовать disable-output-escaping = «да», но он не работал внутри приложения. Теперь я знаю, почему! В дополнение к этому изменению внутри XSLT необходимо проверить, что преобразование внутри кода C# (которое выполняет преобразование XML в HTML с помощью предоставленного XSLT) не использует XMLTextWriter, поскольку оно не исключает сущности. Это: http://www.stylusstudio.com/~SSDN/default.asp?action=9&fid=48&read=3838 помог мне! Надеюсь, это поможет кому-то другому. – user279406

 Смежные вопросы

  • Нет связанных вопросов^_^