Frage

Ich habe die folgende XML:

<?xml version="1.0" encoding="utf-8" ?>
 <ApplicationSettingCategories>
 <Category>Cat1</Category>
 <Category>Cat2</Category>
 <Category>Cat3</Category>
 <Category>Cat4</Category>
 <Category>Cat5</Category>
 <Category>Cat6</Category>
</ApplicationSettingCategories>

Ich versuche, diese Xml zu einem Dropdownliste in ASP.net zu binden, einen XmlDataSource und Xslt verwenden. Dies ist mein erstes Mal, dies zu tun. Die Dropdownliste zeigt die korrekte Anzahl von leeren Elementen, führt mir die Iteration zu glauben, funktioniert, aber die Werte und Text sind leer.

Jede Hilfe meines Fehlers bei der Identifizierung würde geschätzt.

Danke

Mein XLST

<?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">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="ApplicationSettingCategories">
    <Categories>
        <xsl:apply-templates select="Category"/>
    </Categories>
</xsl:template>

<xsl:template match="Category">
    <Category>
        <xsl:attribute name="Category">
            <xsl:value-of select="Category"/>
        </xsl:attribute>
    </Category>
</xsl:template>

Mein ASPX

<asp:DropDownList ID="ddl1" runat="server" DataSourceID="XmlDataSource1" 
DataTextField="Category" DataValueField="Category" />
    <asp:XmlDataSource ID="XmlDataSource1" runat="server" 
    DataFile="~/App_Data/Xml/SettingCategory.xml" 
    TransformFile="~/Schema/AppCategoryXSLT.xslt"></asp:XmlDataSource>

My Source View

<select name="ddl1" id="ddl1">
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
</select>
War es hilfreich?

Lösung

Diese Zeile ist Ihr Problem:

<xsl:value-of select="Category"/>

An diesem Punkt (im Category Vorlage), ist der Kontextknoten die aktuelle Kategorie. Der Wähler auf dem xsl:value-of haben sucht ein Kindelement des Kontextknotens auch genannt Category. Genau diese Linie ändert Kontextknotens Textwert zu erhalten, statt:

<xsl:value-of select="text()"/>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top