2016-09-19 304 views
0

我正在做一个基于JS的小型XML富集器,它给定一个XML文件,计算树中的一些东西,并在<pre></pre>标签上打印(用高亮显示进行了优化。 js)我修改过的文件的内容。从jQuery/XML对象获取一个原始的xml

因为我使用jQuery进行计算,所以在进程结束时获得一个jQuery对象。

现在,我的代码只是: $("#output").append(xmlComputed)

但很明显,在浏览器中,我得到我的XML内容的解析形式,没有任何标记。

所以我想知道什么样的方法可以用来从jQuery节点获取字符串中的完整xml节点,就像我想的那样用.html()

所以,我将能够逃脱特殊字符并打印结果。

预先感谢您!

[编辑]我曾经尝试过这样的:Convert xml to string with jQuery 但我得到我的XML文档的仅仅是个开始,如<!--xml version=1.0-->

回答

0
$("button").click(function(){ 
    $("pre").load("test.xml", function(responseTxt, statusTxt, xhr){ 
     if(statusTxt == "success") 
      alert("External content loaded successfully!"); 
     if(statusTxt == "error") 
      alert("Error: " + xhr.status + ": " + xhr.statusText); 
    }); 
}); 

像u可以使用jQuery获取XML文件。在这里,您可以以字符串的格式获取整个xml。然后,你可以用自己的风格发挥

+0

感谢您的回答,但不幸的是,问题来自最后阶段,因此从jQuery对象到字符串,文件已经被加载。 – DGallet

0
You can use dataType: 'xml' within your ajax.
+0

在我的脚本中没有关于ajax的信息,但是如果你有一个想法如何将问题变成相似的声音,我可以解决这个问题...... – DGallet

+0

请编辑更多信息。仅限代码和“尝试这个”的答案是不鼓励的,因为它们不包含可搜索的内容,也不解释为什么有人应该“尝试这个”。 – abarisone

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,在很多岗位如mentionned,我得到一个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, '&amp;') 
       .replace(/</g, '&lt;') 
       .replace(/>/g, '&gt;') 
       .replace(/"/g, '&quot;') 
       .replace(/'/g, '&apos;'); 
    }; 
} 

而且通过做xmlString.encodeHTML(),我得到一个准化学文本。

希望它对某人有用!

相关问题