Я хочу создать пользовательский элемент управления ASP.NET из XML с использованием XSLT.В настоящее время я действительно собираю результат по частям:
<xsl:template match="TextField">
<xsl:apply-templates select="Label" />
<xsl:text><![CDATA[<asp:TextBox ID="]]></xsl:text>
<xsl:value-of select="@id"/>
<xsl:if test="@defaultValue">
<xsl:text><![CDATA[" value="]]></xsl:text>
<xsl:value-of select="@defaultValue"/>
</xsl:if>
<xsl:text><![CDATA[" runat="server"></asp:TextBox>]]></xsl:text>
<xsl:copy-of select="$br"/>
</xsl:template>
Было бы здорово, если бы я мог вместо этого сделать что-то вроде этого:Легко поддерживать позже, когда есть необходимость изменить структуру HTML.
Есть ли способ достичь этого, и если да, как это будет выглядеть?Мне не нужно рабочее решение, только некоторые советы о том, что делать.
Обновление: Вот пример ввода XML:
<?xml version="1.0" encoding="utf-8" ?>
<Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="XmlForm.xsd">
<Validation enabled="false" enableValidationSummary="true" />
<FieldSet>
<TextField id="firstInput" css-class="textfield-css-class" />
<TextField id="secondInput" defaultValue="Wrdlbmrpft">
<Label translatable="true" >Label Text</Label>
</TextField>
</FieldSet>
</Form>
Вывод должен выглядеть следующим образом:
<%@ Control Language="C#" AutoEventWireup="true" Inherits="DevelopmentWeb.WebUserControl1" %>
<asp:TextBox runat="server" ID="firstInput" CssClass="textfield-css-class"></asp:TextBox>
<asp:Label runat="server" AssociatedControlID="secondInput">Label Text</asp:Label>
<asp:TextBox runat="server" ID="secondInput">Wrdlbrmpft</asp:TextBox>