2009-05-29 47 views
0

轉換XML我有下面的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> 

我想使用的XmlDataSource和XSLT該XML的下拉列表中ASP.net結合。這是我第一次這樣做。 Dropdownlist顯示空白項目的正確數量,使我相信迭代正在工作,但值和文本是空白的。

任何幫助確定我的錯誤,將不勝感激。

感謝

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

我的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> 

我的源視圖

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

回答

2

這條線是你的問題:

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

在這點(Category模板內),上下文節點是當前類別。您在xsl:value-of上擁有的選擇器正在尋找上下文節點的子元素,也稱爲Category。只需更改該行即可獲取上下文節點的文本值:

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

太棒了!謝謝。 – Picflight 2009-05-29 23:28:08