2017-07-13 19 views
0

文字列を昏睡状態に分割し、以下のように出力する必要があります。XSLT 1.0でランダムな文字列を昏睡(、)で分割する方法

input 1: 
<xsl:variable name="weekdays" select="sunday,tuesday,wednesday"> 

input 2: 
<xsl:variable name="weekdays" select="sunday,thursday,friday,saturday"> 

入力に平日が含まれていない可能性があります。次のような出力が必要です。

output 1: 
<weekday> 
sunday 
Tuesday 
wednesday 
</weekday> 

output 2: 
<weekday> 
sunday 
Thursday 
Friday 
Saturday 
</weekday> 

誰かがこれを助けることができますか?

+1

あなたの変数は、文字列が含まれていた場合、あなたは単にラインにカンマをフィード翻訳することによって、必要な結果を達成することができました。しかし、 'は有効な構文ではありません。 –

+0

ほとんどのxslt-1.0プロセッサは、拡張子をサポートしています(exslt:http://exslt.org/str/functions/split/index.htmlなど)。 – newtover

答えて

0

これを実現するには、入力XMLにcommaの値を区切り値の1つに含めるか、それに応じて<xsl:variable>の値を準備する必要があります。あなたの質問に表示された<xsl:variable>の構文が間違っています。

XSLで入力XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<weekdays>Sunday,Tuesday,Wednesday</weekdays> 

、あなたは要素の値を保持する変数を使用してnewline文字でcommaを置き換えるためにtranslate機能を使用することができます。

変換XSL

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" /> 
    <xsl:strip-space elements="*" /> 
    <xsl:variable name="weekday-names" select="weekdays" /> 
    <xsl:template match="/"> 
     <output> 
      <xsl:value-of select="translate($weekday-names,',','&#xA;')" /> 
     </output> 
    </xsl:template> 
</xsl:stylesheet> 

出力XML

<?xml version="1.0" encoding="UTF-8"?> 
<output>Sunday 
    Tuesday 
    Wednesday 
</output> 
関連する問題