2015-01-30 2 views
0

나는 그렇게처럼 내 XSLT 문서에 사용자 정의 기능을 가지고 :사용자 지정 msxsl : script 함수에 노드 값을 전달하는 방법?

: 그것은 나에게이 결과를 제공

<xsl:variable name="urlp" select="Path/To/Some[@attr='condition']/Node" /> 
<xsl:value-of select="custom:uriencode($urlp)" /> 

:

<msxsl:script language="JScript" implements-prefix="custom"> 
function uriencode(string) { 
    return encodeURIComponent(string); 
</msxsl:script> 

것은 내가이 같은 노드의 값을 전달하려고 할 때

MS.Internal.Xml.XPath.XPathSelectionIterator 

그래서 나는 Node의 실제 값을 내 함수에 전달하지 않았지만 어떻게 처리합니까? 또는, 함수에 전달되는 객체에서 노드의 값을 검색 하시겠습니까?

+0

어떻게 XSLT 변환을 호출합니까? C#에서? 가능한 경우 코드를 표시 할 수 있습니까? –

답변

0

"script"함수에서 .NET String으로 처리되는 XSLT/XPath 문자열을 전달하려면 <xsl:value-of select="custom:uriencode(string($urlp))" />을 사용하십시오.

.NET 측에서 문제를 해결하려면 MoveNext()으로 전화하십시오.

function encode(nodeIterator) { 
    if (nodeIterator.MoveNext()) { 
    return encodeURIComponent(nodeIterator.Current.Value); 
    } 
    else { 
    return ''; 
    } 
} 
관련 문제