1
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="cooking">
<page>
<uri>http://www.somepage.com/page1.html</uri>
<content><![CDATA[<script>alert("Hello");</script>]]></content>
</page>
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>

javascriptを使用してxmlを解析したいとします。

<!DOCTYPE html>
<html>
<body>
<script>
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","books.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 

txt=xmlDoc.getElementsByTagName("content")[0].childNodes[0].nodeValue;
document.write(txt);
</script>
</body>
</html>

出力は、メッセージが Hello のアラート ボックスです。スクリプトを実行したくありません。

xmlDoc.getElementsByTagName("content")[0].childNodes[0].nodeValue; の代わりに 出力を次のように取得するにはどうすればよいですか:

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

2 に答える 2

2

そうではありませんdocument.write- それはテキストではなく HTML として扱われます。

使用createTextNodeしてからappendChild、DOM のどこかで結果を使用します。

于 2012-11-15T13:24:59.303 に答える