ave*_*net 5 javascript xhtml dom innerhtml xmlserializer
我想将部分DOM序列化为XHTML(有效的XML).我们假设我里面只有一个元素<body>
,这是我要序列化的元素:
<div>
<hr>
<img src="/foo.png">
</div>
Run Code Online (Sandbox Code Playgroud)
有了这个,document.innerHTML
给我几乎我想要的,除了它返回HTML,而不是XHTML(即,<hr>
并且<img>
将不会被正确关闭).既然innerHTML
没有诀窍,我如何将部分DOM序列化为XHTML?
我不确定是否可以选择使用其他语言(在 JavaScript 引擎之上)。如果这有任何帮助,这将是 XQuery (XQIB) 的执行方式:
<script type="application/xquery">
serialize(b:dom()//div)
</script>
Run Code Online (Sandbox Code Playgroud)
例如,在以下页面中,序列化的 XHTML 在页面上以文本形式写入,而不是在 div 标记之后的 script 标记:
<!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>
Run Code Online (Sandbox Code Playgroud)
HTML DOM 映射到 XQuery 数据模型(XML 之上的数据模型)。b:dom() 返回页面的文档节点, //div 导航到所有后代 div 标签。然后,序列化函数将其序列化为字符串。
但是,这适用于 IE9+(不是 6+)以及最新版本的 Chrome、Firefox、Safari、Opera。
归档时间: |
|
查看次数: |
782 次 |
最近记录: |