私の英語のために申し訳ありません。 xslのヒントや関数を探しています。タグの後ろにスペースがあるかどうかを調べ、これが真であれば関数は何かを作成する必要があります。LilyPondの歌詞のXSL関数
背景: 歌詞を扱うための特別な構文が必要なさまざまなMusik-Programmsがあるので、私はXMLの歌詞を書きたいと思っています。
[C]Where have all the [Am]flowers gone
示す(および転置)C- AM-Akkord用:
たとえば、ソフトウェア "SongSheetジェネレータ" 構文を必要とします。
<akkord>C</akkord>
のようにCとアムをタグ付けし、(私たちはドイツで言う)とても良いので、長い
<xsl:template match="akkorde">
<span style="color:green">[<xsl:value-of select="." />]</span>
</xsl:template>
のようなXSLを書くため問題ありません。
今、私はこの構文を必要と表記-のprogramm「LilyPondの」、歌詞で仕事をしたい:本稿執筆時点では
Where4 have8 all2 the8 flow-8ers4 gone?2
、ソフトウェアは単語が「どこ」の四半期であることを、知っています"have"は1/8です... (LilyPondは適切な注釈の下に単語を設定します)
"flowers"という単語は " - "で区切られています。これは、単語に2つの音符(または2つの音節)があるためです。 (LilyPondのでは、すべての点、コンマ、疑問符...は、音節の期間前に設定されている)
このような背景で、私はこのように私のXMLを書きたい:
<akkord>C</akkord>Where<duration>4</duration> have<duration>8</duration> all<duration>2</duration> the<duration>8</duration> <akkord>Am</akkord>flow<duration>8</duration>ers<duration>4</duration> gone<duration>2</duration>
今私は、単語にdurationタグがない場合は、 "flow-8ers4"にセパレータ/ハイフン( - )を設定するXSL関数が必要です。 duration-Tagが "Where4"のような単語の最後にある場合は、セパレータは表示されません。
私は、「duration-Tagにスペースがない場合は、単語内にある必要があり、その後、durationタグの前にセパレータ/ハイフン( - )を置く必要があります」と考えました。 しかし、上には、歌詞の最後に疑問符があることがわかります。したがって、最初の記号がスペースまたはポイントであれば、関数も見なければなりません。
もちろん、セパレーターにタグを付けることもできます。しかし、それはそうするためにもっとうまくいく。私は、関数がより速く/より速くそれを行うことができることを望む。
あなたは私の文章を理解することを願っています。ヒントをありがとう。