gpt4 book ai didi

javascript - 将 JSDOM 解析的 XML 保存为文件

转载 作者:行者123 更新时间:2023-12-05 00:35:40 25 4
gpt4 key购买 nike

我可以像这样解析 XML:

import JSDOM from "jsdom";
const myXml = "... some xml loaded from somewhere ...";
const dom = new JSDOM.JSDOM(myXml);

当我用谷歌搜索“jsdom save xml”时,我真的很惊讶,但我什么也没得到。我认为 JSDOm 是最流行的 XML 操作库之一。

在一个答案中,我看到了这个:
window.document.documentElement.outerHTML

由于某种原因会产生垃圾代码,例如它转换:
<Node>
<Child attr="attr"/>
<Child attr="attr"/>
<Child attr="attr"/>
<Child attr="attr"/>
</Node>


<Node>
<Child attr="attr">
<Child attr="attr">
<Child attr="attr">
<Child attr="attr">
</Child></Child></Child></Child>
</Node>

它还以以下方式开始文档:
<html><head></head><body><globe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

请注意 Globe是源 XML 的根元素。它还以小写形式生成所有内容。

最佳答案

保存文件的方法是正确的。但是解析的方法是错误的。 JSDOM需要 HTML 并创建浏览器 DOM 的实例。并且必须这样使用,所以步骤和在浏览器中解析 XML 时一样:

// Create empty DOM, the imput param here is for HTML not XML, and we don want to parse HTML
const dom = new JSDOM.JSDOM("");
// Get DOMParser, same API as in browser
const DOMParser = dom.window.DOMParser;
const parser = new DOMParser;
// Create document by parsing XML
const document = parser.parseFromString(xml, "text/xml");

// save the xml after modifications
const xmlString = document.documentElement.outerHTML;

关于javascript - 将 JSDOM 解析的 XML 保存为文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59668971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com