2017-11-24 16 views
0
내가 입력 XML 파일에서 구성 XML 파일에 기록 된 많은의 XPath queryes 실행하기 위해 노력하고있어

:은 DYN인가 : 평가() 내부에서 작업하기의 <xsl : for-each>

<results> 
<xsl:for-each select="$config_file/queries/*"> 

    <xsl:variable name="curr_item_name" select="name()"></xsl:variable> 
    <xsl:variable name="curr_xpath_query" select="."></xsl:variable> 

    <xsl:element name="{$curr_item_name}"> 
     <xsl:value-of select="dyn:evaluate($curr_xpath_query)" /> 
    </xsl:element> 
</xsl:for-each> 
</results> 

내가 기대되었다 xpath 평가 결과와 함께 많은 xml 요소 결과의 자식 (쿼리의 자식만큼)이 있어야합니다.

정확하지만 비어있는 모든 태그를 받았습니다.

누구나 나를 도와 줄 수 있습니까? 프로세서로서 저는 Xalan eclipse 임베디드 프로세서를 사용하고 있습니다 (당분간).

감사합니다, 로라

+0

foreach 루프 안팎에서 절대 xpath 평가 문을 작성하면 루프 외부의 값이 잘 작동하고 내부의 값은 빈 결과를 반환합니다. – Laura

+0

원본 문서, 예상 출력 및 실제 출력을 보여주십시오. –

답변

0

그래서 당신은 당신의 XPath 평가를위한 컨텍스트 노드되고 싶지 않는 노드? 현재는 $config_file/queries/*으로 처리하는 모든 요소이며 XPath 표현식을 제공하는 데 사용합니다. 변수에 XPath 표현식을 저장하고 표시하지 않은 다른 노드에 for-each 또는 apply-templates으로 컨텍스트를 변경하고 이전에 변수에 저장하지 않은 경우 액세스 할 수없는 경우가 있습니다. 전역 변수가 있다고 가정 해 보겠습니다.

<xsl:variable name="main-doc" select="/"/> 

다음으로 사용할 수 있습니다.