使用 C# 创建一个合法的 javascript 文件
create a legal javascript file using c#
我正在尝试使用 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'>SAM</book><book id='b'></book>MAX</root>";
我正在寻找一种创建合法输出的简单方法,因为尝试手动转义所有 xml 个字符以创建合法的 js 字符串肯定会失败。
知道如何轻松完成这项工作吗?
你可以试试Json.Net。它是 JSON(Javascript 的子集)的序列化器。试试看:
string xmlInJavascript = JsonConvert.SerializeObject("<root><item1>123</item1></root>");
在 System.IO 命名空间中使用以下方法读取 XML 文件中的所有文本:
public static string ReadAllText(
string path
)
将此传递给 System.Web 命名空间中的以下方法(需要 .NET 4.6):
public static string JavaScriptStringEncode(
string value,
bool addDoubleQuotes
)
组合代码如下所示:
string xml = File.ReadAllText(@"..\..\a.xml");
string js = HttpUtility.JavaScriptStringEncode(xml, false);
File.WriteAllText(@"..\..\b.js", string.Format("var xml=\"{0}\";", js));
根据您提供的 XML 示例,生成的 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";
这是 fiddle:
https://jsfiddle.net/o1juvc0f/
我正在尝试使用 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'>SAM</book><book id='b'></book>MAX</root>";
我正在寻找一种创建合法输出的简单方法,因为尝试手动转义所有 xml 个字符以创建合法的 js 字符串肯定会失败。
知道如何轻松完成这项工作吗?
你可以试试Json.Net。它是 JSON(Javascript 的子集)的序列化器。试试看:
string xmlInJavascript = JsonConvert.SerializeObject("<root><item1>123</item1></root>");
在 System.IO 命名空间中使用以下方法读取 XML 文件中的所有文本:
public static string ReadAllText(
string path
)
将此传递给 System.Web 命名空间中的以下方法(需要 .NET 4.6):
public static string JavaScriptStringEncode(
string value,
bool addDoubleQuotes
)
组合代码如下所示:
string xml = File.ReadAllText(@"..\..\a.xml");
string js = HttpUtility.JavaScriptStringEncode(xml, false);
File.WriteAllText(@"..\..\b.js", string.Format("var xml=\"{0}\";", js));
根据您提供的 XML 示例,生成的 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";
这是 fiddle: https://jsfiddle.net/o1juvc0f/