如何插入缺失的元素或修改现有元素? [英] How to insert a missing element or modify an existing element?

查看:5
本文介绍了如何插入缺失的元素或修改现有元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理必须生成的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中做到这一点吗?那有可能吗?

有谁能帮帮我吗

问候 M

推荐答案

这样如何...

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

说明

第二个模板添加示例节点(如果它不存在)。 第三个模板删除现有样本中的所有百分比符号。

这篇关于如何插入缺失的元素或修改现有元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆