我正在尝试加载XML文件,但XML中的内容中包含&符号。有没有办法在代码中逃避它们?而不是编辑实际的XML文件?我发现的所有其他答案都建议我在使用Javascript加载之前编辑代码,但这对我来说不是一个选项,因为我从一个总是在变化的数据库中提取它。
任何帮助都将不胜感激。
答案 0 :(得分:1)
从我得到的问题是你想要更换&符号?如果是这样,我实际上只是在前几天处理了这个问题。
我接近它的方式是我加载了XML文件,然后我接受了 response.Text,它将XML文件对象转换为字符串,并将其编码为十六进制。然后我替换了所有“%26”,这是“&”的十六进制,带有“& _amp;” (取出下划线!消息将其转换为'&'),XML可以理解。我然后解码它并再次作为字符串加载它。这就是你要做的一切。这是一些示例代码......
var x;
function loadXMLFile(xmlFile){
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET",xmlFile,false);
xmlhttp.send(null);
//encodes the xml, replaces all invalid characters with their hex value, decodes the xml, then parses it.
var encoded = encodeURIComponent(xmlhttp.responseText);
var replaced = encoded.replace(/%26/g,"&"); // &
var decoded = decodeURIComponent(replaced);
//Pass in the new XML string, which turns into an XML Object which you can parse.
parser=new DOMParser();
xmlDoc=parser.parseFromString(decoded,"text/xml");
x=xmlDoc.getElementsByTagName("Sample_Tag");
}