gpt4 book ai didi

JavaScript SerializeToString() 自动添加属性

转载 作者:行者123 更新时间:2023-12-03 02:12:49 25 4
gpt4 key购买 nike

我有以下 HTML 代码,我将其转换为文档对象,然后使用 serializeToString() 再次转换为字符串:

    let html = `<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>Hello
</body>
</html>`;

let newHTMLDocument = new DOMParser().parseFromString( html, 'text/html' );

let head = new XMLSerializer().serializeToString(newHTMLDocument.head);

console.log(head);

为什么头部包含:

<head xmlns="http://www.w3.org/1999/xhtml">
<title>Title</title>
</head>

如您所见, xmlns="http://www.w3.org/1999/xhtml"不在原始字符串中,那么为什么 serializeToString() 将其添加到我的 head 标记中以及如何停止函数不会这样做,因此 head 变量包含以下内容:

<head>
<title>Title</title>
</head>

最佳答案

来自XHTML spec ,第 3.1.1 节:

The root element of the document must contain an xmlns declaration for the XHTML namespace [XMLNS]. The namespace for XHTML is defined to be http://www.w3.org/1999/xhtml. An example root element might look like: <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

所以,它只是符合标准。

要在没有序列化器的情况下转换为文本,可能类似于:

let html = `<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>Hello
</body>
</html>`;

let newHTMLDocument = new DOMParser().parseFromString( html, 'text/html' );

console.log(newHTMLDocument.head.outerHTML);

关于JavaScript SerializeToString() 自动添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49481978/

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