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

标签 javascript html xml parsing xhtml

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

<img src="somepic.jpg" someAtrib="1" >

我正在尝试使用正则表达式来匹配“img”节点,并在节点末尾应用斜杠,使其看起来像。

<img src="somepic.jpg" someAtrib="1" />

本质上,这里的最终目标是确保节点是关闭的,打开的节点在 HTML 中有效,但显然在 XML 中无效。是否有任何正则表达式爱好者可以提供帮助?

最佳答案

不要使用正则表达式,而是使用专用的解析器。在 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>

你必须使用 xmldom如果您需要将其与 nodejs 后端一起使用。 npm i xmldom.

关于javascript - 如何将 HTML 转换为有效的 XHTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12092532/

相关文章:

javascript - 将显示设置为内联提交表单但不阻止

java - spring-security-samples-preauth-xml 示例无法运行

sql-server - 将数据库模式导出到 XML 文件

xml - "parsing"在XML中的反义词

javascript - 如何在没有 onClick 函数的情况下将 php 变量值传递给 javascript var 变量?

javascript - 使用 javascript 或 jQuery 添加 CSS 媒体查询

html - 如何使导航栏居中

javascript - 如何从 Firefox 插件编辑 `window` 上的属性?

javascript - 如何使用 Javascript 在容器中找到第一个文本框?

iphone - 无法选择表格单元格中的文本 (iPhone Mobile Safari)