2011-01-26 10 views
0

は、ここに私のコードです。 変換後、ライターは<が&lt;に変更された内容を持ちます。ファイルに保存するXmlWriterを使用すると、このエスケープが表示されないため、これはxslの問題ではありません。 xslには2,の変換があり、それが問題の原因となります。変換をファイルに書き込むと、問題はありません。私はライターのいくつかの設定を変更する必要があるかもしれないと思ったが、XElement.CreateWriterXmlWriterSettingsを取るコンストラクターを持たない。XSLTはエスケープせずに.NETの変換<

文字列またはstringbuilderに変換せずにXElementに再解析する方法はありますか?代わりのXmlWriterの

新情報

、私はに私のコードを変更:私が望むような文字のStreamWriterは非脱出した

using (StreamWriter writer = new StreamWriter()) 
{ 
    _xslt.Transform(section.CreateReader(), null, writer); 
} 

、今、どのように私はそれが戻ってロードされたのですか私のXElementに?詳細はこちら

ため

要求がなくしたXmlWriterと、のStreamWriterで正常に動作XSLです:

<xsl:template match="processing-instruction(mark_start')"> 
    <xsl:text disable-output-escaping="yes">&lt;addtext></xsl:text> 
</xsl:template> 

<xsl:template match="processing-instruction('mark_end')"> 
    <xsl:text disable-output-escaping="yes">&lt;/addtext></xsl:text> 
</xsl:template> 

そして、いや、私は私がそうXMLを制御することはできません与えられた処理指示に固執する。要約すると、DOEはStreamWriterでは動作しますが、XmlWriterでは動作しません。まあ、

using (MemoryStream stream = new MemoryStream()) 
{ 
    using (StreamWriter writer = new StreamWriter(stream)) 
    { 
     _xslt.Transform(section.CreateReader(), null, writer); 
     stream.Seek(0, SeekOrigin.Begin); 
     transformed = XElement.Load(stream); 
    } 
} 
+0

変換するXMLの一部と変換されたXMLを表示してください。 –

+0

上記の情報を追加しました。 – Wavel

+0

@ Wave:悪い結果のXMLを投稿してください。 –

答えて