如何将HTML转换为有效的XHTML?

Joh*_*ohn 5 html javascript xml xhtml parsing

我有一串HTML,在这个例子中它看起来像

<img src="somepic.jpg" someAtrib="1" >
Run Code Online (Sandbox Code Playgroud)

我正在尝试锻炼一个与'img'节点匹配的正则表达式,并在节点的末尾应用斜杠,使其看起来像.

<img src="somepic.jpg" someAtrib="1" />
Run Code Online (Sandbox Code Playgroud)

本质上,最终目标是确保节点关闭,开放节点在HTML中有效,但显然不是XML.是否有任何正则表达式buff可以提供帮助?

Rob*_*b W 14

不要使用正则表达式,而是使用专用解析器.在JavaScript中,使用创建文档DOMParser,然后使用以下命令对其进行序列化XMLSerializer:

var doc = new DOMParser().parseFromString('<img src="foo">', 'text/html');
var result = new XMLSerializer().serializeToString(doc);
// result:
// <html xmlns="http://www.w3.org/1999/xhtml"><head></head><body> (no line break)
// <img src="foo" /></body></html>
Run Code Online (Sandbox Code Playgroud)