如何使用jQuery创建XML文件

4
有没有一种方法可以仅使用jQuery/JavaScript创建XML文件?
6个回答

4
使用jQuery.parseXML解析一个简单的容器字符串:
使用jQuery.parseXML函数进行解析。
var xml = '<?xml version="1.0"?><root/>';
var doc = jQuery.parseXML(xml);

然后,您可以使用普通的jQuery DOM操作将节点附加到该XML文档。一旦您需要序列化最终文档,您可以使用这个问题的答案。


1
它正在从头开始创建一个新的XML文档。但是,如果您在浏览器环境中,不能将其写入文件系统。但是,您可以将其提交到服务器上,从而使其持久化。 - emboss
1
我喜欢这个想法,但这里引号不匹配。 - Amish Programmer

4

不可以使用浏览器JavaScript直接写入文件系统。您需要一些服务器来为您编写文件系统。您可以在JS中构建文件,然后通过AJAX将其发送到服务器以进行编写。


1
好的,所以没有客户端,但是有服务器端的JavaScript?有什么想法,或者用哪个库可以实现它? - flopifal
1
“服务器端JavaScript”并不存在。如果您想在JavaScript中生成XML,则必须进行字符串构建,或者尝试利用DOM生成XML。如果您想在服务器端生成它并使用PHP,则可以查看SimpleXML。 https://dev59.com/cHVC5IYBdhLWcg3w7V1q - Alex Turpin
1
我不是指用纯JavaScript来进行服务器端编程,而是指使用框架的JavaScript来进行服务器端编程。我想在客户端目录中创建一个文件,他可以打开这个文件,而且这个文件的扩展名应该是XML。 - flopifal
1
我不确定我理解你想要什么。JavaScript本身无法与文件交互。如果你想使用JavaScript在服务器上创建一个文件,你需要使用像PHP或.NET这样的服务器端语言,并通过AJAX调用它。 - Alex Turpin
3
服务器端 JavaScript 绝对存在,并且已经存在很长时间。话虽如此,我认为 OP 只是在询问如何根据某些与网页的交互来创建 XML 文件,提供的信息太少了。 - jiggy

2
您的问题比起表面看来更为复杂。我们将其分为两个部分:
  1. 我能使用JavaScript创建文件吗?
  2. 我能使用jQuery/JavaScript将XML写入该文件吗?
不幸的是,第一个问题的答案是否定的。您不能使用在浏览器中运行的JavaScript访问文件系统。这会带来安全隐患,并且主流浏览器不允许这样做。
第一个问题的答案使第二个问题无效。您可以在JavaScript中创建XML,但是您将没有地方可写入它。
如果您提供有关您想要解决的原因的更多信息,可能可以找到解决您问题的替代方案。

0
您可以创建这样的文档:
var doc = document.implementation.createDocument(namespace,rootnode,doctype);
doc.documentElement.appendChild(somenode);

然后将其序列化为字符串:

new XMLSerializer().serializeToString(doc);

但它只会存在于内存中。你还想对它做什么?


这会为我创建一个文件吗?例如,我可以在某个目录中打开它吗?还是它只会将字符串转换为有效的XML? - flopifal
2
它在内存中创建一个文档,而不是文件。运行在浏览器中的JavaScript无法将文件写入文件系统。 - jiggy

0

这不是在创建文件,而是使字符串成为有效的XML。 - flopifal

0

由于我自己正在学习XML,所以这可能是一个不合法的答案,因为它包含了一个可能的问题。

话虽如此,我相信可以将XML文档发送到浏览器进行显示。然后,最终用户可以明确地保存它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接