从服务器返回的字符串包含 \t \r\n
Returned string from the server contains \t \r\n
我有 C# class 使用此代码将 XSLT 转换为 html:
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; }
}
I return 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 作为 html 而不是纯文本(可能这就是您获得这些符号的原因):
[HttpGet]
public HttpResponseMessage GetHtmlFromXslt()
{
var response = new HttpResponseMessage();
response.Content = new StringContent(GetHtmlFromXmlAndXslt());
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return response;
}
如果这不可能,您可以在显示之前替换不需要的字符串,如下所示:
yourHtml.replace(/\n|\r|\t/g, '') //will replace \n, \t and \r
我有 C# class 使用此代码将 XSLT 转换为 html:
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; }
}
I return 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 作为 html 而不是纯文本(可能这就是您获得这些符号的原因):
[HttpGet]
public HttpResponseMessage GetHtmlFromXslt()
{
var response = new HttpResponseMessage();
response.Content = new StringContent(GetHtmlFromXmlAndXslt());
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return response;
}
如果这不可能,您可以在显示之前替换不需要的字符串,如下所示:
yourHtml.replace(/\n|\r|\t/g, '') //will replace \n, \t and \r