2017-02-03 2 views
2

イムそれはカンマが
マイXML区切りとしてリストをインポートするようにMSアクセスでXSLTでXMLをインポートしようとしている:私は、XSLTとのカンマ区切りのリストを生成するにはどうすればよい

<entry> 
    <title>Adobe</title> 
    <description>Adobe Acrobat</description> 
    <title>Adobe1</title> 
    <description>Adobe Acrobat1</description> 
    <title>Adobe2</title> 
    <description>Adobe Acrobat2</description> 
</entry> 

私の試みを:

<xsl:for-each select="entry"> 
    <xsl:if test="position() > 1">, </xsl:if> 
    <xsl:value-of select="title"/> 
</xsl:for-each> 

期待される結果:アドビ、Adobe1、Adobe2

答えて

4

あなたのXMLは、唯一のentry、そう内のコードを持っていますは一度だけ実行されます。そして<xsl:value-of select="title" />を行うのみXSTL 2.0で、あなたは上記のコードを置き換えることができること、これにそのentry(つまり、XSLT 1.0と仮定すると)

変更それを...

<xsl:for-each select="entry/title"> 
    <xsl:if test="position() > 1">, </xsl:if> 
    <xsl:value-of select="."/> 
</xsl:for-each> 

注以内に最初のtitleを選択しますスニペットは完全にこれで...

<xsl:value-of select="entry/title" separator="," /> 

EDIT:

<iavmNotice xmlns="http://stuff.com" noticeId="138643"> 
    <title>Cisco Vulnerability</title> 
    <techOverview> 
     <entry> 
     <title>2012-2490</title> 
     <description>Cisco ID 71.</description> 
     </entry> 
     <entry> 
     <title>2012-2525</title> 
     <description>Cisco ID 69.</description> 
     </entry> 
    </techOverview> 
</iavmNotice> 
...あなたのXSLTは、このようになりますと仮定

そうのように続いて、コンテキスト内のxsl:for-eachを使用するように、テンプレートを追加します。

<xsl:template match="stuff:techOverview"> 
    <xsl:copy> 
     <xsl:for-each select="stuff:entry/stuff:title"> 
      <xsl:if test="position() > 1">, </xsl:if> 
      <xsl:value-of select="."/> 
     </xsl:for-each> 
    </xsl:copy> 
</xsl:template> 

は、以下の点に注意してください:

  • stuffプレフィックスがあたりとして正しい名前空間にバインドされていることを確認入力XML
  • 他のテンプレートがないことを確認してくださいstuff:techOverview
+1

ありがとう答えはティム!しかし、私のxslではどこにそのスニペットを置くのですか? – jjohnson

+0

ここにその動作例があります... http://xsltransform.net/ejivdHK –

+0

@jjohnson:私は多分あなたの新しい質問に手伝ってもいいかもしれませんが、質問に答えると質問を編集するのは良い習慣ではありません元の答えがもはや意味をなさないという意味の根本的に異なるバージョンです。元の答えはあなたを助けてくれなかったかもしれませんが、それは他の人(2人が私の答えをあきらめた)を助けたかもしれません。私はあなたの質問に編集をロールバックしました。代わりに、新しい質問をする必要がありますが、あなたの質問をどのように提示するかについていくつか考えてください。入力XML、試したXSLT、および入力に対応する期待される出力を表示します。ありがとうございました! –

関連する問題