我正在研究XML和XSLT动态值必须生成。
我的 XmL
<query>
<one>testing1</one>
<one>testing1</one>
</query>
我的输出 XML
<query>
<one>testing1</one>
<one>testing1</one>
<sample>100</sample>
</query>
XSLT我需要检查(XSL:IF)输入 XML 中的示例元素是否可用(如果可用) 10% 我必须使用 XSLT 删除 %,然后输出将是 10。 如果 XML(样本)中没有元素,则默认情况下必须创建 100。
我们可以在 XSLT 中做到这一点是可能的。
谁能在这里帮我
问候米
这个怎么样...
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*[not(//sample)]">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
<sample>100</sample>
</xsl:copy>
</xsl:template>
<xsl:template match="sample">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:value-of select="translate(.,'%','')"/>
<xsl:apply-templates select="*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
解释
第二个模板添加示例节点(如果不存在)。第三个模板从现有样本中删除任何百分号。