一部を削除しXSL無効にする出力エスケープが空白XMLの
<xsl:value-of select="text" disable-output-escaping="yes" />
を私の出力は
**TitleHappy**
私の間隔が行方不明になったなりました - </b>
と<b>
の間にスペースがあるはずです。
私はnormalize-space()
を試しましたが、動作しません。
提案がありますか?ありがとう!
一部を削除しXSL無効にする出力エスケープが空白XMLの
<xsl:value-of select="text" disable-output-escaping="yes" />
を私の出力は
**TitleHappy**
私の間隔が行方不明になったなりました - </b>
と<b>
の間にスペースがあるはずです。
私はnormalize-space()
を試しましたが、動作しません。
提案がありますか?ありがとう!
あなたは、XSLから空白をしたい場合は、以下を使用します。 <のxsl:テキスト> </XSL:「」両空間は以下となります。そのテキストノード(すなわちとして認識された場合、テキスト>
空白のみが保存されています
parser.setPreserveWhitespace(真))のorignalソースXMLから
空白(たとえばパーサを伝えることによって保存されなければならない)認識されます。
との間のスペースはテキストノードとして認識されないので保存されていないと思いますか?とにかくそれを保存し、それを出力として表示するには? –
私はあなたのソースをxslと間違えていたので(xsl:textメソッドはうまくいきません)私は、XMLパーサーがあなたのsource-xml内の空白を削除するのではないかと心配しています。それ以外の空白以外の文字を追加すると、textnodeとして認識され、空白(少なくとも1回)が保持されます。あなたのxmlパーサーのオプションを詳しく見て、空白を残すようにします。それ以外の場合は、 (または - 改行しないスペース)が唯一役立つものです。 – Niko
あなたは改行なしスペースで
ありがとうございます。私は現在あなたの提案を使用しています。 –
をあなたのスペースを置き換えることができ、あなたの出力HTMLとして、あなたは、元のXMLの世代の任意のコントロールを持っていますか?そうであれば、xml:space = "preserve"をテキスト要素に追加して、空白を残すようプロセッサに指示してください。
<text xml:space="preserve"><b>Title</b> <b>Happy</b></text>
また、XSLTの "xsl:preserve-space"要素を調べてみてください。
私はこれを個人的に使用したことはありませんが、何か助けになるかもしれません。詳細については、W3Schoolsを参照してください。
私はオリジナルのXMLを制御できません。 =( 私は保存スペースを試してみましたが、それは動作しません。それはとにかくデフォルト設定で分かった。 スペースが太字タグが使用されている場合にのみ、姿を消した。
皆様のご協力いただきありがとうございます。 現在、私はMattHの提案を使用しています。これは、スペースと非破壊スペースの代替をテストすることです。私が考えたもう一つの方法は、 "</b> < b>"をテストし、 "</b> < b>"で置き換えることです。大胆なタグ内のスペースは実際に出力されます。両方の方法が働いた。どのような意味があるのか分かりません。そして、2つの別々の大胆なタグの間にスペーシングが見つかった場合、スペーシングがなぜ取り除かれるのかまだ分かりません。
あなたの例は私のために働いています。どのようなxmlパーサとxsltプロセッサを使用していますか?おそらくパーサは変換が呼び出される前に空白を削除していますか? –
私のためにも動作します。あなたの質問には、明らかに重要ではない細部はありません。私は無効に出力エスケープを設定すると – Tomalak
=「no」を 私の出力は、私はまだ任意の関連情報 –