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でこれを実行できるかどうかは可能です。

誰かがここで私を助けてくれますか

よろしくM

4

1 に答える 1

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>

説明

2番目のテンプレートは、サンプルノードが存在しない場合は、サンプルノードを追加します。3番目のテンプレートは、既存のサンプルからパーセンテージ記号を削除します。

于 2012-07-07T13:57:49.917 に答える