my xml: 変換される入力 xml
<content>
<conditionalText name="Masked_Account_Number">
<text>
Hi 2<dynamicVariable name="asked_Account"/> is needed.
</text>
</conditionalText>
<dynamicInclude name="xyz" />
</content>
したがって、上記のxmlを使用し、「名前」を属性として含むすべてのタグを識別し、その値を抽出してタグ「名前」を作成し、その下に「a」タグが必要です。形式は次のとおりです。
入力 xml の属性として「名前」を含むすべてのタグの変換された出力は、次のようになります。
<name>
<a href="#" id="dynamicvariable"
name="value of name attribute"
xmlns="http://www.w3.org/1999/xhtml">[value of name attribute]
</a>
</name>
入力xmlファイルの「dynamicVariable」タグに対してのみ、「a」タグを次のように作成する必要があります
入力 xml の「dynamicVariable」タグの変換された出力は、次のようになります。
<a href="#" id="dynamicvariable"
name="value of name attribute"
xmlns="http://www.w3.org/1999/xhtml">[value of name attribute]
</a>
変換後の私の出力xmlは次のようになります
<content1>
<conditionalText>
<text>
Hi 2
<a href="#" id="dynamicvariable"
name="asked_Account"
xmlns="http://www.w3.org/1999/xhtml">[asked_Account]
</a>is needed
</text>
<name>
<a href="#" id="dynamicvariable"
name="Masked_Account_Number"
xmlns="http://www.w3.org/1999/xhtml">[Masked_Account_Number]
</a>
</name>
</conditionalText>
<dynamicInclude>
<name>
<a href="#" id="dynamicvariable" name="xyz"
xmlns="http://www.w3.org/1999/xhtml">[xyz]
</a>
</name>
</dynamicIncude>
</content1>
試した XSLT を以下に示します: 2 つのテンプレートを使用しました。最初のテンプレートは、属性として「名前」を含むすべてのタグを識別し、その値を抽出して、次の形式で作成します。
<name>
<a href="#" id="dynamicvariable"
name="value of name attribute"
xmlns="http://www.w3.org/1999/xhtml">[value of name attribute]
</a>
</name>
そして、2 番目のテンプレートは最初のテンプレートをオーバーライドし、'dynamicVariable' という名前のタグのみを識別し、その 'name' 属性値を抽出して、次の形式のタグを作成します。
<a
href="#" id="dynamicvariable"
name="value of name attribute"
xmlns="http://www.w3.org/1999/xhtml">[value of name attribute]
</a>
したがって、私の最終的な 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="content/*">
<content1>
<xsl:apply-templates />
</content1>
</xsl:template>
<xsl:template match= "*/@name" >
<name>
<a href ='#' id="dynamicvariable" xmlns="http://www.w3.org/1999/xhtml" >
<xsl:copy-of select="@*"/>
[<xsl:value-of select="@name"/>]
</a>
</name>
<xsl:for-each select="child::*">
<xsl:if test="name()='text'">
<text>
<xsl:apply-templates />
</text>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match= "*[name()='dynamicVariable']" >
<a href ='#' id="dynamicvariable" xmlns="http://www.w3.org/1999/xhtml" >
<xsl:copy-of select="@*"/>
[<xsl:value-of select="@name"/>]
</a>
</xsl:template>
</xsl:stylesheet>
しかし、必要な変換された xml を取得できませんでした。誰でも私を助けることができます。そして、条件付きテキスト要素を持つ変換された xml ファイルは、変換された xml で指定されたのと同じ順序でサブチャイルドとして持つ必要があります。