需要有关XSLT 2.0转换的帮助。
输入xml:
<Employee>
<Post>Manager</Post>
</Employee>
伪代码:
if(Employee/Post = 'Manager') then
Associate/High = 'Band'
else
Associate/Low = 'Band'
输出xml:
<Associate>
<High>Band</High>
</Associate>
<Associate>
<Low>Band</Low>
</Associate>
答案 0 :(得分:1)
使用xsl:element
动态构造元素。除此之外,您的伪代码已经非常准确。
XSLT样式表
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" />
<xsl:template match="Employee">
<Associate>
<xsl:element name="{if (Post = 'Manager') then 'High' else 'Low'}">
<xsl:value-of select="'Band'"/>
</xsl:element>
</Associate>
</xsl:template>
</xsl:transform>
XML输出
<Associate>
<High>Band</High>
</Associate>
答案 1 :(得分:0)
我会使用模板
<xsl:template match="Employee">
<Associate>
<xsl:apply-templates/>
</Associate>
</xsl:template>
然后
<xsl:template match="Employee/Post[. = 'Manager']">
<High>Band</High>
</xsl:template>
<xsl:template match="Employee/Post[not(. = 'Manager')]">
<Low>Band</Low>
</xsl:template>