をエスケープ私はこのスキーム次XMLファイルがありますので、「currentValueは」におけるセミコロンのXSLT 1.0:二重引用符
<translationData>
<product>
<attributeValue>
<value>1/4"</value>
<value1>1/4"</value1>
<currentValue>aaaa;bbbb</currentValue>
</attributeValue>
</product>
</translationData>
iが「値」でセミコロンと二重引用符をエスケープする必要があります。 私は、次のようqoutes内のすべてのテキストを配置することによって、セミコロンを脱出することができる午前:
XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="utf-8" />
<xsl:param name="delim" select="';'" />
<xsl:param name="quote" select="'"'" />
<xsl:param name="break" select="'
'" />
<xsl:template match="/">
<xsl:apply-templates select="translationData/product/attributeValue" />
</xsl:template>
<xsl:template match="attributeValue">
<xsl:apply-templates />
<xsl:if test="following::*">
<xsl:value-of select="$break" />
</xsl:if>
</xsl:template>
<xsl:template match="*">
<!-- remove normalize-space() if you want keep white-space at it is -->
<xsl:value-of select="concat($quote, translate(.,'"','\"'), $quote)" />
<xsl:if test="following-sibling::*">
<xsl:value-of select="$delim" />
</xsl:if>
</xsl:template>
<xsl:template match="text()" />
</xsl:stylesheet>
何とか出力は次のとおりです。
"1/4 \"。 "1/4 \"; "AAAA、BBBB"
の代わり
" "\ 1/4" 0;" 1/4 "\"; "AAAA、BBBB" 私は間違っているつもりです
?
私はXMLとXSLTを初めて使用しており、この特定のケースを扱う質問は見つかりませんでした。
XSLTコードは別の質問のための@Tomalakの回答です。 here
? –
クレジットを与えずに他人のコードを投稿しないでください。このXSLTをhttp://stackoverflow.com/a/365372/18771からコピーしました。あなたがコードを書くときはいつも、自分で書くことはしませんでした。 – Tomalak
@ michael.hor257kはそこにはいけません。今すぐ削除しました。 –