用js将xml转化成html标签,在JavaScript中将DOM节点或文档转换为XML

假设您在JavaScript中获得了单个DOM元素或文档(例如window.document),那么如何将其转换为有效的XML?

更具体地说,在我的示例中,我有一个显示SVG的网页,该SVG具有很多JavaScript以允许进行交互.这是一个图形显示,可让您放大图形甚至进行一些转换.现在,用户可以使用“保存图像”按钮.我想象的方式是将SVG元素的文档节点转换为XML,然后将其发送到服务器,服务器再返回包含SVG文档或PNG图像的页面.

这一切都在FireFox上运行(尽管Safari和Chrome也可以正常运行,但目前对用户是必需的).在网页的firefox中,我将SVG文档作为Object元素包含在内.在javascript中,我可以访问该对象contentDocument,该对象引用XML页面的根目录.它包含XML版本,Document标签和带有所有属性的svg根标签.

也许有人已经解决了这个问题,所以我可以复制他们的代码.也许有人知道在Firebug中寻找实现此目标的位置.或者,也许已经有DOM方法了.

解决方法:

有一个非标准的API对象:XMLSerializer(尽管除IE浏览器外,所有对象均实现了非标准的API对象).

它的serializeToString方法期望传递DOMNode对象.

var sXML = new XMLSerializer().serializeToString(document.body);

在Internet Explorer中,除非获取.outerHTML并解决与序列化到HTML一起解决的所有问题(例如,属性中缺少引号,未关闭的标记等),否则无法为HTML检索正确的XML.

标签:dom,svg,javascript

来源: https://codeday.me/bug/20191024/1921128.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值