2012-11-15 43 views
0

假設XML是:解析XML Javascript成爲標籤顯示爲文本

<title><script>alert("Hello");</script></title> 

下面的代碼返回null。

txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue; 

我希望txt具有下面的值,我想將它顯示爲文本。

<script>alert("Hello");</script> 

我該如何解析xml?

的XML可以這樣過:

<title><sample>alert("Hello");</sample></title> 

我只是想在標題標籤內的整個內容,文字無關的標題標籤

+0

是你的整個XML文檔?如果是這樣,請嘗試添加一個到它的開頭:<?xml version =「1.0」?> –

回答

0

這裏的內容是解決方案!

<script type="text/javascript"> 
var xml = "<title><sample>alert(1);</sample></title>"; 
if (window.DOMParser) 
{ 
    parser=new DOMParser(); 
    xmlDoc=parser.parseFromString(xml,"text/xml"); 

    var data = xmlDoc.getElementsByTagName("title"); 
    for (i=0;i<data.length;i++){ 
     document.write("<div class='script'>") 
     document.write("&lt;"+xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeName+">"+xmlDoc.getElementsByTagName("sample")[i].childNodes[0].nodeValue+"&lt;/"+xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeName+">"); 
     document.write("</div>") 
    } 
} 
</script> 

請注意,在腳本標籤的空白「<腳本>」,這將避免是裏面的腳本的執行,如果刪除此空白空間,則腳本將被執行並輸出將被顯示在警報而不是文檔主體。

另請注意我在xml字符串中使用的'\'反斜槓,這是因爲JavaScript以標記結束的事實,因此添加反斜槓將使其成爲字符串的一部分。

+0

這不是我想要的。這個XML也可以是這樣的:<sample> alert(「Hello」);</sample>我只想將標記中的全部內容作爲文本 – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/930514/">user930514</a></span> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">好,我更新瞭解決方案。檢查它PLZ – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">抱歉,這不是我想要的。我想要一個更通用的解決方案,以便標題標籤可以包含任何內容。例如:<title> hello alert;。可能我應該嘗試var txt = xmlDoc.getElementsByTagName(「title」)[0] .childNodes [0],然後使用xml序列化程序將對象轉換爲字符串。 – user930514