如何插入缺少的元素或修改现有元素?

时间:2012-07-07 12:56:14

标签: xml xslt xslt-1.0

我正在研究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中做到这一点是可能的。

有人可以帮助我吗

此致 中号

1 个答案:

答案 0 :(得分:2)

这个怎么样......

<?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>

说明

第二个模板添加了示例节点(如果它不存在)。 第三个模板从现有样本中删除任何百分号。