使用c创建合法的javascript文件#
使用c#我试图编写一个接收XML文件的函数, 并输出一个JavaScript文件,其中XML内容分配给一个字符串变量 范例 XML输入:a.XML使用c创建合法的javascript文件#,javascript,c#,xml,string,escaping,Javascript,C#,Xml,String,Escaping,使用c#我试图编写一个接收XML文件的函数, 并输出一个JavaScript文件,其中XML内容分配给一个字符串变量 范例 XML输入:a.XML <root> <book id="a"> SAM </book> <book id="b"> </book> MAX </root> 山姆 马克斯 JS输出:b.JS var xml = "<root><book id='a'&g
<root>
<book id="a">
SAM
</book>
<book id="b">
</book>
MAX
</root>
山姆
马克斯
JS输出:b.JS
var xml = "<root><book id='a'>SAM</book><book id='b'></book>MAX</root>";
var xml=“SAMMAX”;
我正在寻找一种创建合法输出的简单方法,因为试图手动转义所有xml字符以创建合法js字符串肯定会失败
你知道如何无痛地完成吗?你可以试试。它是JSON(Javascript的子集)的序列化程序。试试看:
string xmlInJavascript = JsonConvert.SerializeObject("<root><item1>123</item1></root>");
string xmlInJavascript=JsonConvert.SerializeObject(“123”);
使用System.IO命名空间中的以下方法读取XML文件中的所有文本:
public static string ReadAllText(
string path
)
将其传递给System.Web命名空间(需要.NET 4.6)中的以下方法:
组合代码如下所示:
string xml = File.ReadAllText(@"..\..\a.xml");
string js = HttpUtility.JavaScriptStringEncode(xml, false);
File.WriteAllText(@"..\..\b.js", string.Format("var xml=\"{0}\";", js));
var xml="\u003croot\u003e\r\n \u003cbook id=\"a\"\u003e\r\n SAM\r\n \u003c/book\u003e\r\n \u003cbook id=\"b\"\u003e\r\n \u003c/book\u003e\r\n MAX\r\n\u003c/root\u003e";
根据您提供的XML示例,生成的JS如下所示:
string xml = File.ReadAllText(@"..\..\a.xml");
string js = HttpUtility.JavaScriptStringEncode(xml, false);
File.WriteAllText(@"..\..\b.js", string.Format("var xml=\"{0}\";", js));
var xml="\u003croot\u003e\r\n \u003cbook id=\"a\"\u003e\r\n SAM\r\n \u003c/book\u003e\r\n \u003cbook id=\"b\"\u003e\r\n \u003c/book\u003e\r\n MAX\r\n\u003c/root\u003e";
这是小提琴:
你试过这样做吗:正确的方法是分别编写C#和JS,并从JS(例如Web API)调用C#来获取所需信息。@JohnKoerner这篇文章描述了如何使用Web框架对字符串进行编码,我没有这些UTIL,只有C#(不{cats}符号)@AlexSikilinda我想正确的方法是基于用法,在我的例子中,我需要文件在发送之前存在,以便在js引擎中进行解释。