【发布时间】:2015-03-26 08:00:36
【问题描述】:
我有使用此代码将 XSLT 转换为 html 的 C# 类:
public class MyXslTransform
{
public XslTransform(string styleSheetPath)
{
Xslt = new XslCompiledTransform();
Xslt.Load(StyleSheetPath);
}
public string TransformToString(XmlDocument doc)
{
using (var sw = new StringWriter())
{
XmlReader reader = new XmlNodeReader(doc);
Xslt.Transform(reader, null, sw);
string html = sw.ToString();
return html;
}
}
private XslCompiledTransform Xslt { get; set; }
}
我在 Web 控制器中将 html 字符串作为字符串类型返回。但是当它进入浏览器时,我会收到很多:\t \r\n \" 等。我怎样才能摆脱换行符、制表符等的编码。
在浏览器中,我使用 AngularJS 和 C# REST web api。
如果我在 TransformToString 方法中使用此代码:
using (MemoryStream ms = new MemoryStream())
{
using (XmlTextWriter writer = new XmlTextWriter(ms, Encoding.UTF8))
{
Xslt.Transform(doc.CreateNavigator(), writer);
ms.Position = 0;
using (var sr = new StreamReader(ms))
{
return sr.ReadToEnd();
}
}
}
我只得到\n,\t 和转义双引号\"
控制器中的方法:
[HttpGet]
public string GetHtmlFromXslt()
{
return GetHtmlFromXmlAndXslt();
}
【问题讨论】:
-
只是为了测试。你可以写文件你的结果字符串吗?
return sr.ReadToEnd()excnahge 到var temp = sr.ReadToEnd(); File.WriteAllText("1.txt", temp);。 “1.txt”文件会有\n、\t符号吗? -
它保留 \r\n 但不是可见字符而是空格。也许我不应该将它作为字符串返回?
标签: c# asp.net xslt asp.net-web-api