jQuery-从程序生成的xml文件读取并在页面上呈现-安培数中断脚本
如果我有像这样的文字 标题:安全可靠 艺术家:首都 它工作得很好,但是一旦程序引入文本 标题:安全与健康 艺术家:首都 脚本将不会渲染它。如果我尝试转义字符串,它会将空格转换为%20,但仍然无法处理&并且根本无法渲染该内容 注意:我们无法更改程序呈现xml文件的方式,并且它呈现的内容在技术上是无效的xml(没有声明或字符编码,行项目也没有转义),我们必须使用给定的内容 以下是脚本的一部分:jQuery-从程序生成的xml文件读取并在页面上呈现-安培数中断脚本,jquery,xml,Jquery,Xml,如果我有像这样的文字 标题:安全可靠 艺术家:首都 它工作得很好,但是一旦程序引入文本 标题:安全与健康 艺术家:首都 脚本将不会渲染它。如果我尝试转义字符串,它会将空格转换为%20,但仍然无法处理&并且根本无法渲染该内容 注意:我们无法更改程序呈现xml文件的方式,并且它呈现的内容在技术上是无效的xml(没有声明或字符编码,行项目也没有转义),我们必须使用给定的内容 以下是脚本的一部分: jQuery(document).ready(function($) { function get
jQuery(document).ready(function($)
{
function getSong() {
var song= $.ajax({
type: "GET",
url: "/dalet/nowplaying2.xml",
dataType: "xml",
async : false,
cache : false,
}).responseXML;
$(song).find('Current').each(function(){
var title = $(this).find("titleName").text();
var artist = $(this).find("artistName").text();
$("#nowsongtitle").html(title);
$("#nowsongartist").html(artist);
});
}
setInterval(function() {
getSong();
}, 5000);
});
下面是程序中XML的外观(Dalet5.1)
2013-11-30T13:53:25
不为人知
2013-11-30T13:53:25
8839
安然无恙的
首都
Hitzone 67(CD2)
2013-11-30T13:56:36
1000000627:7514
8827
爱情
卡里姆·韦莱特
福克斯
您的xml文档似乎没有正确编码。您需要避开符号和:
<titleName>Safe & Sound</titleName>
Safe&;声音
或者将该标记的内容放在CDATA区域中:
<titleName><![CDATA[Safe & Sound]]></titleName>
如果无法更改xml文档本身,则在使用jQueryXML解码器对其进行解析之前,可能必须对从服务器返回的xml进行字符串替换。如果您查看文档,其中有一节介绍了如何定制响应解码器。XML中不允许使用与符号,但某些标记除外,如标题标记(如果我没记错的话),因此如果它破坏了某些内容,不管是什么东西坏了都不能正常工作我会作弊然后这么做->不确定我是否理解你的最后一部分。Dalet生成文件的程序对输出的控制是有限的。更改软件(dalet)是不可能的,我以前也处理过类似的API,这一点也不少见,我通常通过一点字符串替换来解决它,将$替换为字符串中不太可能出现的其他内容,然后在输出文本之前替换回去。请看我上面的例子。简单的解决方案是使用另一个服务器文件来检索、包装和清理xml,并将该文件用作ajax URL。同样,我们无法控制Dalet如何输出xml。据我们所知,它是不可定制的。这正是你所看到的。
<titleName><![CDATA[Safe & Sound]]></titleName>