문제

다음 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>

XMLDATASOURCE 및 XSLT를 사용 하여이 XML을 ASP.NET의 드롭 다운 목록에 바인딩하려고합니다. 이것은 이번이 처음입니다. 드롭 다운 목록에는 정확한 빈 항목이 표시되어 반복이 작동한다고 믿지만 값과 텍스트는 비어 있습니다.

내 오류를 식별하는 데 도움이 될 것입니다.

감사

내 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>
도움이 되었습니까?

해결책

이 줄은 당신의 문제입니다 :

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

이 시점에서 (내부 Category 템플릿), 컨텍스트 노드는 현재 범주입니다. 당신이 가지고있는 선택기 xsl:value-of 찾고 있습니다 컨텍스트 노드의 자식 요소 또한 호출됩니다 Category. 대신 컨텍스트 노드의 텍스트 값을 얻으려면 해당 라인을 변경하십시오.

<xsl:value-of select="text()"/>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top