2017-11-10 23 views
0

로 평가 :XSLT 3.0은 다음과 같은 XML의 변수

<?xml version="1.0" encoding="UTF-8"?> 
<pi:Payroll_Extract_Employees xmlns:pi="urn:com.workday/picof"> 
    <pi:company> 
     <pi:employee> 
     <pi:name>John Andrews</pi:name> 
     <pi:age>23</pi:age> 
     <pi:salary>4000</pi:salary> 
     <pi:division>Accounting</pi:division> 
     </pi:employee> 
    </pi:company> 
</pi:Payroll_Extract_Employees> 

내가 출력을 다음 $names ("요한에 저장되어있는 이름 노드의 값을 xsl:evaluate를 사용하여 변수에 값을 저장하기 위해 XSL을 사용하여 앤드류스 ") : 당신은 변수의 유형 약어가 할 필요가있는 네임 스페이스 선언으로

<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 

xmlns:pi="urn:com.workday/picof"> 
     <xsl:output method="text"/> 
      <xsl:template match="pi:Payroll_Extract_Employees/pi:company"> 
       <xsl:variable name="test"> 
       <xsl:text>pi:employee/pi:name</xsl:text> 
      </xsl:variable> 
       <xsl:variable name="names" as="element(name)*"> 
       <xsl:evaluate xpath="$test" context-item="."/> 
      </xsl:variable> 
       <xsl:value-of select="$names"/> 
      </xsl:template> 
    </xsl:stylesheet> 
+1

문제가 무엇인지 설명해 주시겠습니까? 정확히 무엇을 시도 했습니까? 그리고 무엇을 원한다면 당신이 바라는대로 가지 않을 것인가? 왜 그럴까요? – LordWilmore

답변

0

<xsl:variable name="names" as="element(pi:name)*"> 
     <xsl:evaluate xpath="$test" context-item="."/> 
    </xsl:variable> 
+0

나를 위해 작동하지 않는 것, 어떤 xslt 프로세서를 사용합니까? – pshemek

+0

oXygen 내부에서 Saxon 9.8.0.5 EE로 시도했습니다. 19.1. "작동하지 않는 것"이 ​​발생할 때 정확히 무슨 일이 발생합니까? 오류가 발생합니까? 어떤 결과를 얻으실 수 있습니까? 어느 것을 얻으십니까? –

+0

Saxon 9.6.0.7 EE를 사용하므로 문제가 발생한다고 생각합니다. – pshemek