2017-04-14 1 views
-1

J'ai les données XML comme ci-dessous, je veux récupérer tous les nom, ID et genre de la station. Comment faire cela en utilisant javascript?Analyser les données XML en utilisant Javascript

<somelist> 
<datatune base="/sbin/somelist.pls" base-m3u="/sbin/tunein-station.m3u" base-xspf="/sbin/tunein-station.xspf"/> 
<list name="COOLfahrenheit 93 - (1)" mt="audio/mpeg" id="1392941" br="64" genre="Easy Listening" genre2="Pop" logo="http://i.radionomy.com/document/radios/3/32d2/32d25a06-b423-4d16-9541-7980a2669da3.png" ct="The TOYS - +I2+2'5HA%I'" lc="3220"/> 
<list name="COOLfahrenheit 93 - (5)" mt="audio/mpeg" id="1453011" br="64" genre="Easy Listening" genre2="Pop" logo="http://i.radionomy.com/document/radios/f/f9a7/f9a74fd5-f1d4-41c1-9f8a-fcc62470bb31.png" ct="The TOYS - +I2+2'5HA%I'" lc="2348"/> 
<list name="COOLfahrenheit 93 - (4)" mt="audio/aacp" id="1460193" br="64" genre="Easy Listening" genre2="Pop" logo="http://i.radionomy.com/document/radios/f/f6d5/f6d5d27f-397e-4b67-8564-8f043b2b5336.png" ct="The TOYS - +I2+2'5HA%I'" lc="1915"/> 
</somelist> 

Merci,

+0

Vous pouvez utiliser les mêmes fonctions que vous utiliseriez pour html, 'getElementByID()', 'getElementsByTagName()', etc. Faites un essai et voyez si cela fonctionne – jrook

+0

https://developer.mozilla.org/en -US/docs/Web/Guide/Parsing_and_serializing_XML – jrook

Répondre

0

Essayez ceci:

var xmlstring = `<somelist><datatune base="/sbin/somelist.pls" base-m3u="/sbin/tunein-station.m3u" base-xspf="/sbin/tunein-station.xspf"/><list name="COOLfahrenheit 93 - (1)" mt="audio/mpeg" id="1392941" br="64" genre="Easy Listening" genre2="Pop" logo="http://i.radionomy.com/document/radios/3/32d2/32d25a06-b423-4d16-9541-7980a2669da3.png" ct="The TOYS - +I2+2'5HA%I'" lc="3220"/><list name="COOLfahrenheit 93 - (5)" mt="audio/mpeg" id="1453011" br="64" genre="Easy Listening" genre2="Pop" logo="http://i.radionomy.com/document/radios/f/f9a7/f9a74fd5-f1d4-41c1-9f8a-fcc62470bb31.png" ct="The TOYS - +I2+2'5HA%I'" lc="2348"/><list name="COOLfahrenheit 93 - (4)" mt="audio/aacp" id="1460193" br="64" genre="Easy Listening" genre2="Pop" logo="http://i.radionomy.com/document/radios/f/f6d5/f6d5d27f-397e-4b67-8564-8f043b2b5336.png" ct="The TOYS - +I2+2'5HA%I'" lc="1915"/></somelist>` 

alors sur this link, il vous suffit:

var oParser = new DOMParser(); 
var oDOM = oParser.parseFromString(xmlstring, "text/xml"); 
var listHtmlCollection = oDOM.getElementsByTagName("list"); 
var listArr = Array.prototype.slice.call(listHtmlCollection); //see: stackoverflow.com/questions/222841/most-efficient-way-to-convert-an-htmlcollection-to-an-array 
var stationNames = listArr.map(le => le.getAttribute("name")); 
console.log(stationNames); 

qui devrait donner:

Array [ "COOLfahrenheit 93 - (1)", "COOLfahrenheit 93 - (5)", "COOLfahrenheit 93 - (4)" ] 

Vous pouvez suivre la même méthode pour d'autres attributs (id, gnere, etc.).