使用c创建一个合法的javascript文件
create a legal javascript file using c#
使用c#,我试图编写一个接收XML文件的函数,并输出具有分配给字符串变量的XML内容的JavaScript文件
示例
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字符串肯定会失败。
有什么想法可以无痛地完成吗?
在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";
小提琴在这里:https://jsfiddle.net/o1juvc0f/
您可以尝试Json.Net。它是Json(Javascript的子集)的序列化程序。试试看:
string xmlInJavascript = JsonConvert.SerializeObject("<root><item1>123</item1></root>");
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何包含特定于每个视图angularjs的javascript文件
- 将数据从javascript文件导入VB.Net页面
- Chrome加载旧版本的Javascript文件
- 操作员”;新的“;根据我想在几个JavaScript文件中使用的类,在JavaScript中使用
- gulp-if-javascript文件,但不在gulp-useref的特定目录中
- 如何在visualstudio中调试web api时编辑javascript文件
- 关于引入外部javascript文件的问题&css通过https
- 有没有办法在tinymceiframe中加载一个外部javascript文件
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 在一个javascript文件中为整个网站创建标签
- 如何在定义js文件后为外部javascript文件设置变量
- 显示IIS上javascript文件(SOAP请求)的XML响应
- ResolveUrl没有'我似乎不适合当链接到具有动态虚拟目录的外部javascript文件时
- 我应该将MVC视图特定的javascript文件放在哪个文件夹中
- Django'支持Javascript文件中的翻译
- MVC正在忽略我的Javascript文件
- 为什么不't我的ruby代码与javascript文件一起插入
- 在Javascript文件中获取PHP变量
- 如何在Windows中将Javascript文件编译成二进制文件