XSLT 3.0 评估为变量
XSLT 3.0 evaluate into variable
以下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>
我使用此 XSL 使用 xsl:evaluate
将值存储在变量中,然后从存储在 $names
("John Andrews") 中的名称节点输出值:
<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>
有了命名空间声明,变量的类型注释就需要
<xsl:variable name="names" as="element(pi:name)*">
<xsl:evaluate xpath="$test" context-item="."/>
</xsl:variable>
以下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>
我使用此 XSL 使用 xsl:evaluate
将值存储在变量中,然后从存储在 $names
("John Andrews") 中的名称节点输出值:
<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>
有了命名空间声明,变量的类型注释就需要
<xsl:variable name="names" as="element(pi:name)*">
<xsl:evaluate xpath="$test" context-item="."/>
</xsl:variable>