2009-05-29 8 views
0

Ich habe die folgende XML:Transformation unter Verwendung von XML Xslt

<?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 dieses Xml zu einem Dropdownliste in ASP.net zu binden, ich versuche, eine XmlDataSource und Xslt verwenden. Dies ist das erste Mal, dass ich das mache. Die Dropdown-Liste zeigt die korrekte Anzahl an leeren Elementen an, was zu der Annahme führt, dass die Iteration funktioniert, aber die Werte und der Text leer sind.

Jede Hilfe bei der Identifizierung meines Fehlers wäre willkommen.

Dank

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> 

Antwort

2

Diese Linie ist Ihr Problem:

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

An dieser Stelle (in der Category Vorlage), ist der Kontextknoten die aktuelle Kategorie. Der Selektor, den Sie auf Ihrem haben, sucht nach einem untergeordneten Element des Kontextknotens auch Category genannt. Ändern Sie einfach diese Zeile, um stattdessen den Textwert des Kontextknotens abzurufen:

+0

Super! Vielen Dank. – Picflight