2013-06-20 2 views
0

xml으로 항목 이름을 반환하는 저장 프로 시저가 있습니다.이 코드를 xslt 코드에서 사용하여 이름을 반환하고 xslt 변수에 이름을 지정하려고합니다. 시도했습니다.xslt 변수에 값을 가져올 수 없습니다.

<xsl:variable name="Item" 
    select="shop:ExecStoredProcedure(
      'kt_Item', 
      concat('@Dcat:',$p//defaultcategory) 
     )" /> 
<xsl:variable name="txt1" 
       select="$Item//TT[@TXT1]"/> 
    <textarea> 
    <xsl:value-of select="$txt1"/> 
    </textarea> 

출력 XML처럼 내 코드는

<root> 
<item> 
<Column1> 
<TT TXT1="Item3" /> 
<TT TXT1="Item2" /> 
<TT TXT1="Item1" /> 
</Column1> 
</item> 
</root> 

비슷하지만 내 코드에서 나는 names.Waht 문제? 사람이 알고있다 얻을 수 없다?

+0

당신이 뭘 하려는지 명확하지 않다가, 몇 번 "이름"을 참조하면 출력에 복사하는 XML의 이름을 '이름'이라고 부르지 않습니다. TT 요소를 출력에 쓰는 대신 TXT1 특성 값을 출력에 쓰고 싶습니까? –

답변

1

문제는 사용자의 ExecStoredProcedure 반환 값이 xslt 관점에서 볼 때 문자열 (XML에 스팅이 포함되어 있더라도) 인 것 같습니다.

XSLT-1.0은 문자열을 XML로 재 해석 할 수 없습니다. 환경 (xlst 프로세서)에 따라이 작업을 수행하려면 확장 node-set()을 사용할 수 있습니다. 이 확장 기능을 사용할 수있는 경우

당신은 같은 것을 시도 할 수 있습니다 :

<xsl:variable name="txt1" select="exsl:node-set($Item)//TT[@TXT1]"> 
+0

시도했지만 결과는 Arun

+0

내가 예상 한 결과를 이해하지 못하는 것 같습니다. 하지만,'TT [@ TXT1]'은 @TXT 속성을 가진 모든 TT를 찾기 때문에 xpath가 작동하는 것처럼 보입니다. –

+0

다음과 같은 출력이 필요합니다. Item1 Item2 Item3 .. 각 값을 따로 따로 입력하십시오. – Arun

관련 문제