2017-11-01 11 views
0

が私のデータ構造がXMLである:xslt 1.0で現在の属性値を印刷する方法は?ここで

<xsl:for-each select='/MyFile/Body/Data/row'> 
    <xsl:for-each select="@*"> 
      <xsl:text><![CDATA[*]]></xsl:text> 
    </xsl:for-each> 
</xsl:for-each> 

を私は= 18回の3×6の印刷*を行うので、私は正しい道にいると思う:

<MyFile> 
    <Body> 
     <Data> 
      <row A="1" B="SPC" C="011" D="" E="0" F="38.482" /> 
      <row A="2" B="CDR" C="011" D="" E="0" F="39.812" /> 
      <row A="3" B="FFD" C="011" D="" E="0" F="41.115" /> 
     </Data> 
    </Body> 
</MyFile> 

ここで私は、これまでに得た方法です!

質問は、私は任意のヘルプを、「SPC」などの属性値で置き換える*「38.482」

行う方法ですか? THX!

+0

です: "" 価値の=選択を/> 'ここで(この場合は' 'は必要ありません)、属性の値を1つの長い文字列として与えます。あなたが何か他のものを望むなら、あなたがこの場合に期待していた出力を示したら助けになるかもしれません。ありがとう! –

+0

あなたが出力として得たいものを私たちに教えてください。 – Steve

+0

THX私が欲しいのは、1; SPC; 011 ;; 0; 38.482; 2; CDR; 011 ;;; 39.812; 3; FFD; 011 ;; 0; 41.115 – David4866

答えて

0

これはトリックを行う必要があります。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 
    <xsl:template match="/"> 
    <xsl:for-each select='/MyFile/Body/Data/row'> 
     <xsl:for-each select="@*"> 
     <xsl:value-of select="."/> 
     <xsl:if test="position() != last()"> 
      <xsl:text>;</xsl:text> 
     </xsl:if> 
     </xsl:for-each> 
    </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 

結果はあなたが単に `ます。

1;SPC;011;;0;38.4822;CDR;011;;0;39.8123;FFD;011;;0;41.115 
関連する問題