2009-05-29 13 views
0

je le code XML suivant:Transformer Xml en utilisant 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> 

Je suis en train de lier ce Xml à un DROPDOWNLIST à l'aide d'un ASP.net XmlDataSource et Xslt. C'est la première fois que je fais ça. La liste déroulante affiche le nombre correct d'éléments vierges, ce qui me laisse croire que l'itération fonctionne mais que les valeurs et le texte sont vides.

Toute aide pour identifier mon erreur serait appréciée.

Merci

Mon 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> 

Mon 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> 

Ma Source Voir

<select name="ddl1" id="ddl1"> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
<option value=""></option> 
</select> 

Répondre

2

Cette ligne est votre problème:

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

À ce stade (à l'intérieur du modèle Category), le noeud contextuel est la catégorie actuelle. Le sélecteur que vous avez sur votre xsl:value-of recherche un élément enfant du noeud de contexte également appelé Category. Modifiez simplement cette ligne pour obtenir la valeur de texte du nœud de contexte à la place:

<xsl:value-of select="text()"/> 
+0

Impressionnant! Je vous remercie. – Picflight

Questions connexes