Как я могу отобразить пользовательские элементы управления XSL в моем файле XSLT с C #? - PullRequest
0 голосов
/ 12 января 2010

Я использую C # для перевода XML-файла в HTML с использованием XSLT.

Я использую объект Extension для рендеринга своего собственного кода:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
  xmlns:widget="urn:serverTime"
>

<xsl:output method="html" indent="yes"/>

<xsl:template match="/">
    <xsl:value-of select="demo:printTime()"/>
</xsl:template>

и в моем C #:

XsltArgumentList myList = new XsltArgumentList();
myList.AddExtensionObject("demo:serverTime", new ServerTime());
transform.Transform(document, myList, writer);

Это работает отлично. Тем не менее, я хотел бы создать свои собственные теги, такие как:

<demo:printTime />

Это не работает: тег выводится на печать без визуализации. Как сделать так, чтобы я мог использовать свои собственные теги?

1 Ответ

1 голос
/ 12 января 2010

Вы не можете сделать это. XSLT не поддерживает «пользовательские теги».

Если вы хотите распечатать что-либо, что не является литеральным значением, то это должно быть результатом вызова функции, заключенным в <xsl:value-of/>.

...