2

これは私が持っているxmlです。

   <Parent>
      <child>
         <child1>Ram</Child1>
         <child2>Buss</Child2>
      </child>
   </Parent>

この xml では、子 1 と子 2 の名前を生成するために xsl ファイルが必要です。ただし、子 2 タグはオプションです。そのため、タグが表示された場合にのみ child2 のテキスト コンテンツを取得する必要があり、また、child2 タグが表示された場合は、child1 と child2 のテキスト コンテンツの間にスラッシュ文字 (/) を指定する必要があります。XSLでこれを行うにはどうすればよいですか?

4

1 に答える 1

1

これはおそらく最も簡単で最短の解決策の 1 つです

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="child2">
     <xsl:value-of select="concat('/', .)"/>
 </xsl:template>
</xsl:stylesheet>

提供された(テキスト、作成するために修正された)XMLドキュメントに適用された場合

<Parent>
    <child>
        <child1>Ram</child1>
        <child2>Buss</child2>
    </child>
</Parent>

必要な正しい結果が生成されます。

Ram/Buss

この XML ドキュメントに適用すると:

<Parent>
    <child>
        <child1>Ram</child1>
    </child>
</Parent>

再度、必要な結果が生成されます。

Ram
于 2012-04-18T12:42:44.387 に答える