我搜索了我的问题,并发现了很多有用的东西,我已经使用。保存xml文件数据在一个javascript变量
这是计划: 我想从一个XML文件加载数据到一个JavaScript变量。读取XML数据的DOMParser函数将其推入数组中,以便稍后可以从数组中获取随机元素。
要理解我想要做的事情:我想加载随机的YouTube视频。视频的链接/结尾存储在xml文件中,如“d_HvwKtsy_Q”。视频结束后,应立即启动下一个视频。我已经想出了如何在YT api中执行此操作。我只需要将xml文件加载到变量中,以便我可以在extern xml文件中对其进行编辑。
这是从来就走到这一步:
// This is my "xml file", but i want to have it in a extern file, so the variable
stores the extern xml file data like "externXMLfile.xml"
var xml_string ='<answers><answer id="0">o6f9wJ1DWhY</answer><answer id="1">72Y7M3_NlfI</answer></answers>'
function get_answers_from_xml_string(xml_string) {
// Parse the XML string into a XMLDocument
var doc = window.DOMParser
? new DOMParser().parseFromString(xml_string, 'text/xml') // Standard
: new ActiveXObject('Microsoft.XMLDOM').loadXML(xml_string); // IE
// Find the answer nodes
var answers_nodes = doc.getElementsByTagName('answer');
var answers = [];
// Loop through them and save their text content into an array
for (var i = 0; i < answers_nodes.length; i++) {
answers.push(answers_nodes[i].firstChild.data)
}
return answers;
}
//Save the xml elements in an array called answers
var answers = get_answers_from_xml_string(xml_string);
//This is the youtube api stuff, which works fine
// create youtube player
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'd_HvwKtsy_Q',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange,
},
playerVars: {
'controls': 0,
'showinfo': 0,
'iv_load_policy': 3,
},
});
}
//this function loads a new random video id after the video stops from the array, which stores the xml elements
function getMessage() {
return answers[Math.floor(Math.random() * answers.length)];
}
function swapVideo() {
player.stopVideo();
player.loadVideoById(getMessage());
}
// autoplay video
function onPlayerReady(event) {
event.target.playVideo();
}
// when video ends
function onPlayerStateChange(event) {
if(event.data === 0) {
swapVideo();
}
}
我希望你明白我的问题,我想我想通了几乎一切,但
感谢xml_string变量与EXTERN xml文件连接你的帮助!!
我明白了用意,但我想这IC#代码..所以我不知道,如果类似的东西在JS存在,甚至如何写在JS – 2013-04-06 10:51:38
我不认为提问者要求提供节点解决方案? – powtac 2013-04-06 10:51:44
也可以看看这个 –
Darshan
2013-04-06 10:53:21