2010-12-22 19 views
1

クイック質問。私はいくつかのXMLを持っていますXSLT空白要素がトリミングされています

<someXML> 
    <someNode>  </someNode> 
    <someNode>asdlkjf </someNode> 
</someXML> 

これにXSLTを適用すると、最初のノードは何も取り込まれなくなります。第二は結構です、私は空白を維持していますので、末尾の空白をトリミングされていません。

<someXML> 
    <someNode></someNode> 
    <someNode>asdlkjf </someNode> 
</someXML> 

最初のノードが切り捨てなっている理由私の質問はありますか?このように馬鹿げているように、空白ノードは重要であり、維持する必要があります。私はXalan 2.7.1を使用しています。これはちょうどXSLが動作する方法ですか、これを回避する方法はありますか?

ありがとうございます!

+0

良い質問、1:

は、XML文書内のxml:space="preserve"属性を使用し、これを防ぐために。 2つの可能な解決策については私の答えを見てください。 –

答えて

2

使用このXSLTディレクティブ

<xsl:preserve-space elements="*"/> 

これが解決しない場合は、これはXMLパーサは空白のみのテキストノードを除去していることを意味します。

<someXML> 
    <someNode xml:space="preserve">  </someNode> 
    <someNode>asdlkjf </someNode> 
</someXML> 
+0

+1完全な答え。 –