Привет, я генерирую шестнадцатеричный 01 и шестнадцатеричный 03 с помощью xslt и используя c # при преобразовании шестнадцатеричный 01 генерировал как пробел в текстовом документе, если я вижу в шестнадцатеричном формате, я мог видеть
ï »¿какой-то мусор генерируется перед гексом 01, обратите внимание, что эта проблема не копировалась для гекса 03, она работала хорошо, точно генерировал etx, как я мог решить эту проблему? Любая идея, пожалуйста ..
<?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" xmlns:myScripts="myScripts">
<xsl:output method="text" indent="yes"/>
<msxsl:script implements-prefix="myScripts" language="C#">
public string SOH()
{
return '\u0001'.ToString();
}
</msxsl:script>
<msxsl:script implements-prefix="myScripts" language="C#">
public string ETX()
{
return '\u0003'.ToString();
}
</msxsl:script>
<xsl:template match="/">
<xsl:value-of select="myScripts:SOH()"></xsl:value-of>
<xsl:value-of select="myScripts:ETX()"></xsl:value-of>
</xsl:template>
</xsl:stylesheet>
вот мой код C # позади кода:
XslCompiledTransform transform = new XslCompiledTransform(true);
transform.Load(strCTD, new XsltSettings() { EnableScript = true }, null); // Loading the given Xslt document
var writerSettigns = transform.OutputSettings.Clone();
writerSettigns.CheckCharacters = false;
string strFileName = strpath + langid + strCSVFILE + strMsgType + strORGMSG + strSeqNum + strNowDate + strHour + strMin + strSec + ".FTS";
try
{
MemoryStream memoryStream = new MemoryStream();
XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();
xmlWriterSettings.Encoding = new UTF8Encoding(false);
xmlWriterSettings.ConformanceLevel = ConformanceLevel.Document;
xmlWriterSettings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(strFileName, writerSettigns))
{
transform.Transform("sampleCTD.xml", xmlArgsList, writer);
}
string xmlString = Encoding.UTF8.GetString(memoryStream.ToArray());
System.IO.StreamWriter file = new System.IO.StreamWriter(strFileName);
file.WriteLine(xmlString);
file.Close();
}
catch (Exception ex)
{
LogError(1, "Form1", "FileGenerationForCID", ex.Message.ToString(), ex.StackTrace.ToString());
throw ex;
}
Я добавил некоторый код, чтобы избежать ошибки спецификации при запуске текста, даже если он не был решен, пожалуйста, кто-нибудь может посоветовать мне об этом в ближайшее время ....