简体   繁体   English

如何在javascript中强制下载xml文件?

[英]How to force download xml file in javascript?

Given this solution on how to create XML format to my data ( Convert JavaScript object (array) to XML )给出关于如何为我的数据创建 XML 格式的解决方案( 将 JavaScript 对象(数组)转换为 XML

I need now a way to make auto download this into a.xml file this is my code:我现在需要一种方法将其自动下载到 a.xml 文件中,这是我的代码:

toXml = (data) => {
    return data.reduce((result, el) => {
        if (el.title && el.author)
            return result + `<BookData><title>${el.title}</title><author>${el.author}</author></BookData>\n`
        if (el.title && !el.author)
            return result + `<BookData><title>${el.title}</title></BookData>\n`
        if (!el.title && el.author)
            return result + `<BookData><author>${el.author}</author></BookData>\n`
    }, '')
}

if (type == 2)
{
    let data = this.toXml(arrayData);
    console.log(data);
}

Where I pass the data to create my XML?我在哪里传递数据来创建我的 XML?

What should I code instead of console.log(data);我应该编写什么代码而不是console.log(data); so I can get the downloaded.xml file?这样我就可以得到 downloaded.xml 文件?

Edit: Answered in How to create and download an XML file on the fly using javascript?编辑:在How to create and download an XML file on the fly using javascript?中回答。

Better late than never.迟到总比不到好。 This code downloads an XML file using javascript:此代码使用 javascript 下载 XML 文件:

 var pseudoelement = document.createElement("a");

  var filename = "example.xml";
  var pseudoelement = document.createElement("a");
  var blob = new Blob([toXml ], { type: "text/plain" });

  pseudoelement.setAttribute("href", window.URL.createObjectURL(blob));
  pseudoelement.setAttribute("download", filename);

  pseudoelement.dataset.downloadurl = ["text/plain", pseudoelement.download, pseudoelement.href].join(":");
  pseudoelement.draggable = true;
  pseudoelement.classList.add("dragout");

  pseudoelement.click();

thank_for_this感谢这个

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM