2016-09-19 297 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(),我得到一個準化學文本。

希望它對某人有用!

相關問題