gpt4 book ai didi

javascript - 在 JavaScript 中,如何将 DOM 的一部分序列化为 XHTML?

转载 作者:搜寻专家 更新时间:2023-11-01 04:27:14 24 4
gpt4 key购买 nike

我想将部分 DOM 序列化为 XHTML(有效的 XML)。假设我在 <body> 中只有一个元素,这是我要序列化的元素:

<div>
<hr>
<img src="/foo.png">
</div>

有了这个,document.innerHTML给了我几乎我想要的,除了它返回 HTML,而不是 XHTML(即 <hr><img> 不会被正确关闭)。自 innerHTML行不通,如何将部分 DOM 序列化为 XHTML?

最佳答案

我不确定是否可以选择使用另一种语言(在 JavaScript 引擎之上)。如果这有任何帮助,这将是 XQuery (XQIB) 的实现方式:

<script type="application/xquery">
serialize(b:dom()//div)
</script>

例如,在下面的页面中,序列化的 XHTML 在页面上作为文本而不是 script 标签写入,在 div 标签之后:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Serializing part of the DOM</title>
<meta charset="UTF-8"/>
<script type="text/javascript" src="mxqueryjs/mxqueryjs.nocache.js"></script>
</head>
<body>
<div>
<hr>
<img src="/foo.png">
</div>
<script type="application/xquery">
serialize(b:dom()//div)
</script>
</body>
</html>

HTML DOM 映射到 XQuery 数据模型(XML 之上的数据模型)。 b:dom() 返回页面的文档节点,//div 导航到所有后代 div 标签。然后序列化函数将其序列化为字符串。

但是,这适用于 IE9+(不是 6+)和最新版本的 Chrome、Firefox、Safari、Opera。

关于javascript - 在 JavaScript 中,如何将 DOM 的一部分序列化为 XHTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7576925/

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