2017-04-14 113 views
-1

我有如下的xml數據,我想檢索所有站名,id和流派。如何做到這一點使用JavaScript?使用Javascript的解析器XML數據

<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> 

感謝,

+0

您可以使用與HTML,'getElementByID()','getElementsByTagName()'等相同的函數。試試看看它是否有效 – jrook

+0

https://developer.mozilla.org/en -US /文檔/網絡/指南/ Parsing_and_serializing_XML – jrook

回答

0

試試這個:

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>` 

然後根據this link,你可以:

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); 

應該給:

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

對於其他屬性(id,gnere等),您可以遵循相同的方法。