0
は、ここに私のコードです。 変換後、ライターは<が<
に変更された内容を持ちます。ファイルに保存するXmlWriterを使用すると、このエスケープが表示されないため、これはxslの問題ではありません。 xslには2,の変換があり、それが問題の原因となります。変換をファイルに書き込むと、問題はありません。私はライターのいくつかの設定を変更する必要があるかもしれないと思ったが、XElement.CreateWriter
はXmlWriterSettings
を取るコンストラクターを持たない。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"><addtext></xsl:text>
</xsl:template>
<xsl:template match="processing-instruction('mark_end')">
<xsl:text disable-output-escaping="yes"></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);
}
}
変換するXMLの一部と変換されたXMLを表示してください。 –
上記の情報を追加しました。 – Wavel
@ Wave:悪い結果のXMLを投稿してください。 –