假设xml是:
<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 :(得分: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("<"+xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeName+">"+xmlDoc.getElementsByTagName("sample")[i].childNodes[0].nodeValue+"</"+xmlDoc.getElementsByTagName("title")[i].childNodes[0].nodeName+">");
document.write("</div>")
}
}
</script>
注意脚本标记“&lt; script&gt;”中的空格,这将避免执行其中的脚本,如果删除此空格,则脚本将被执行,输出将显示在alert中文件正文。
还要注意我在xml字符串中使用的反斜杠'\',这是因为JavaScript以标记结束,所以添加反斜杠会使它成为字符串的一部分。