0

私は自分の問題を検索し、すでに使用した便利なものをたくさん見つけました。

これが計画です。xml ファイルから javascript 変数にデータをロードしたいと考えています。xml データを読み取る DOMParser 関数はそれを配列にプッシュするため、後で配列からランダムな要素を取得できます。

私がやりたいことを理解するには: ランダムな youtube ビデオを読み込みたいです。ビデオのリンク/エンディングは、「d_HvwKtsy_Q」のようなxmlファイルに保存されます。ビデオが終了したら、すぐに次のビデオを開始する必要があります。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 ファイルに接続する以外は、ほとんどすべてを理解できたと思います。

ご協力いただきありがとうございます!!

4

2 に答える 2

0

このようなものはあなたを助けることができます

 System.IO.StreamReader file = new System.IO.StreamReader(@"c:\YourXML.xml");
    string test = file.ReadToEnd();

これも参照でき ます。この XML を C# 文字列変数に保存するにはどうすればよいですか?

于 2013-04-06T10:48:10.787 に答える