2010-06-01 5 views
0

나는 다음과 같은 샘플 XML을 가지고있다; XSL을 사용하여 드롭 다운 목록에 XML 속성 값을 할당하는 방법



<?xml version="1.0" encoding="iso-8859-9"?> 
    <DropDownControl id="dd1" name="ShowValues" choices="choice1,choice2,choice3,choice4"> 
</DropDownControl > 
나는 XSL을 사용하여이 XML의 UI 표현을 만들어야합니다. 선택 속성에 지정된 값으로 드롭 다운 목록을 채 웁니다.
누구든지 이에 대해 알 수 있습니까?
미리 감사드립니다.

답변

0

StackOverflow를 검색하는 경우 문자열 분할과 관련하여 많은 질문이 있습니다.

여기 예를 들어, 하나 : 당신이 다음과 같은 XML/HTML을 생산하고 그것을

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:template match="/DropDownControl"> 
     <select> 
     <xsl:call-template name="split"> 
      <xsl:with-param name="list" select="@choices"/> 
     </xsl:call-template> 
     </select> 
    </xsl:template> 

    <xsl:template name="split"> 
     <xsl:param name="list" select="''"/> 
     <xsl:param name="separator" select="','"/> 
     <xsl:if test="not($list = '' or $separator = '')"> 
     <xsl:variable name="head" select="substring-before(concat($list, $separator), $separator)"/> 
     <xsl:variable name="tail" select="substring-after($list, $separator)"/> 
     <option> 
      <xsl:value-of select="$head"/> 
     </option> 
     <xsl:call-template name="split"> 
      <xsl:with-param name="list" select="$tail"/> 
      <xsl:with-param name="separator" select="$separator"/> 
     </xsl:call-template> 
     </xsl:if> 
    </xsl:template> 

</xsl:stylesheet> 

을 사용하는 방법을 여기에 귀하의 경우

Comma Separated String Parsing

,

<select> 
<option>choice1</option> 
<option>choice2</option> 
<option>choice3</option> 
<option>choice4</option> 
</select> 

XSLT2.0을 사용할 수 있다면 tokenise func를 사용할 수 있습니다. . 예 그러나

Best way to split and render comma separated text as html

이 페이지를 참조하십시오, 나는 당신이 질문 asp.net 태그와 직접 XSLT2.0을 사용할 수 없습니다 제안하는 # 2.0 C 있습니다 알 수 있습니다.

또 다른 방법은 변형이 C#을 사용하여 수행되고 있다는 것입니다. 변형이 완료되기 전에 코드에서 분리하는 것입니다. XML을 읽고 속성에 액세스하고 .Net의 문자열 분할 함수를 사용하고 하위 요소를 DropDownControl 요소에 추가하는 코드를 작성하십시오.

+0

고맙습니다 Tim : 그것은 나를 위해 일했습니다. –

관련 문제