我正在做一个基于JS的小型XML增强器,给定一个XML文件,计算树中的一些东西,并在<pre></pre>
标签上打印(用highlight.js美化)我的内容修改过的文件。
因为我使用jQuery进行计算,所以我在进程结束时获得了一个jQuery对象。
目前,我的代码仅限于:
$("#output").append(xmlComputed)
但很明显,在浏览器中,我获得了一个我的xml内容的解析形式,没有任何标签。
所以我想知道我可以使用什么样的方法从jQuery节点获取字符串中的完整xml节点,就像我想的.html()
一样?
所以,我将能够逃脱特殊字符并打印结果。
提前谢谢!
[编辑]我曾试过这个:Convert xml to string with jQuery
但我只获取了我的xml文档的开头,例如<!--xml version=1.0-->
答案 0 :(得分:0)
()
就像你可以使用jquery获取你的xml文件一样。在这里,您可以以字符串的格式获取整个xml。然后你可以玩自己的风格
答案 1 :(得分:0)
You can use dataType: 'xml' within your ajax.
答案 2 :(得分:0)
最后,我设法一点一点找到了......
所以一开始我有一个 jQuery对象即xmlComputed
。
我使用.get()
函数转换了 Javascript节点,没有任何参数,它返回节点数组。
数组的第一个条目是xml初始标记<!--xml version=1.0-->
,然后第二个是文本内容,我的主节点是第三个(索引2)(实际上解决了Failed to execute 'serializeToString' on 'XMLSerializer': parameter 1 is not of type 'Node'.
问题) 。
使用XMLSerializer,如许多帖子所提到的,我在xmlString
var oSerializer = new XMLSerializer();
var xmlString = oSerializer.serializeToString(gpxContent.get()[2]);
然后对于转义,只需按照另一个回答how to escape xml entities in javascript?即
if (!String.prototype.encodeHTML) {
String.prototype.encodeHTML = function () {
return this.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
};
}
通过xmlString.encodeHTML()
,我获得了一个准美化的文本。
希望它对某人有用!