HTML内でXSLTを使用して、提供されているXMLを操作しています。私がしなければならないことの背景を説明するために:
XMLを次の形式で受け取ります
<base>
<string>
"Hi, this is a String"
</string>
<redlist>
<red>
<start>3</start>
<end>5</end>
</red>
<red>
<start>9</start>
<end>11</end>
</red>
</redlist>
</base>
<red>
これにより、最終的に、タグで赤で示されている包括的文字を強調表示する出力HTMLが生成されます。したがって、これは「こんにちは、これは文字列です」を出力し、「th」と「is」の部分は赤で表示されます。
私は部分文字列を使ってある種の凝った処理をする必要があると思いますが、それを行う方法が本当にわかりません。
助言がありますか?
アップデート:
私は次のものを持っています-
<xsl:for-each select="base/redlist">
<span style="color:black">
<xsl:value-of select="substring(../string, 0, red/start)">
</span>
<span style="color:red">
<xsl:value-of select="substring(../string, red/start, red/end)">
</span>
</xsl:for-each>
ただし、for-eachループの各反復が0であるため、これは明らかに機能しません。