XSLT変換後、文字エンコードに関係していると思われる主要な質問マークを取得し続けますが、それらを取り除くことはできません。私はすべての異なるエンコーディングを試しましたが、役に立ちませんでした。オブジェクトをシリアル化するときに、メモリ内のxmlソースでスタックします。
これは私のコードです(問題を再現するために可能な限り短い)
var xd = new XmlDocument();
xd.LoadXml(@"<?xml version=""1.0"" encoding=""utf-8""?><Test><AAA>AAA</AAA></Test>");
var xslt = new System.Xml.Xsl.XslCompiledTransform();
xslt.Load(Server.MapPath("/Transformations/Test.xslt"));
using (var ms = new MemoryStream())
{
xslt.Transform(xd, null, ms);
ms.Position = 1;
using (var sr = new StreamReader(ms, System.Text.Encoding.UTF8, true))
{
string s = sr.ReadToEnd();
}
}
そしてこれはXSLTです:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="text" indent="no"/>
<xsl:template match="Test">
BBB<xsl:value-of select="AAA" />CCC
</xsl:template>
</xsl:stylesheet>
生産:
��\r\n\t\tBBBAAACCC\r\n\t
とても簡単かもしれませんが、わかりません...
よろしく、
ヘラス