以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  [求助]html读取xml列表的菜问题.  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=44409)


--  作者:菜小小
--  发布时间:3/25/2007 11:50:00 AM

--  [求助]html读取xml列表的菜问题.
一个FLASH播放器,要做一个HTML文档来读取XML中的音乐列表来显示当前所有的MP3文件。要读的是"music"还是"music addres"?见笑了!XML文件如下:
<?xml version="1.0" encoding="utf-8"?>
<playlist  version="1.5"  firstRun="10">
<music addres="11.MP3"/>
<music addres="55.mp3"/>
</playlist>
--  作者:Qr
--  发布时间:3/25/2007 1:13:00 PM

--  
music/@addres
--  作者:菜小小
--  发布时间:3/25/2007 6:06:00 PM

--  
能帮我改一下吗:
<html>
<head>
<script language="JavaScript" for="window" event="onload">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("mp3list.xml");
nodes = xmlDoc.documentElement.childNodes;
</script>
<title>list</title>
</head>
<body bgcolor="#FFFFFF">
<b>标题: </b>
<span id="music"></span><br>
</body>
</html>
--  作者:jx
--  发布时间:3/25/2007 7:30:00 PM

--  
为什么。。。
--  作者:菜小小
--  发布时间:3/25/2007 7:35:00 PM

--  
应该是添加在这段下面:nodes = xmlDoc.documentElement.childNodes;
--  作者:Qr
--  发布时间:3/25/2007 8:36:00 PM

--  
nodes = xmlDoc.documentElement.childNodes;
music.innerHTML+=nodes[0].attributes[0].text
--  作者:菜小小
--  发布时间:3/26/2007 10:14:00 AM

--  
老大这样只会显示第一条记录……不知道错在哪里
--  作者:Qr
--  发布时间:3/27/2007 8:51:00 AM

--  
你可以用循环啊,nodes是个节点集,nodes[i].attributes[0].text,i从0始计。
for(i=0;i<nodes.childNodes.length;i++){}
--  作者:菜小小
--  发布时间:3/27/2007 9:20:00 AM

--  
版主见笑了,偶如果知道怎么循环也不会提这么肤浅的问题了,呵呵;原来有这个列表的html文档,只要修改一下xml文档中的路径html文档就会显示出来,后来不小心删除了,现在搜了N遍都找不到,还请版主把完整的html文档帖一下,枉费偶天天盯着这个贴子……
--  作者:Qr
--  发布时间:3/27/2007 2:55:00 PM

--  
这个问题应该很基础的哦:
nodes = xmlDoc.documentElement.childNodes;
for(i=0;i<nodes.childNodes.length;i++){
music.innerHTML+=nodes[i].attributes[0].text
}
这只是将MP3列出来,应该没什么应用价值。
--  作者:菜小小
--  发布时间:3/27/2007 4:19:00 PM

--  
按此在新窗口浏览图片按此在新窗口浏览图片按此在新窗口浏览图片按此在新窗口浏览图片按此在新窗口浏览图片按此在新窗口浏览图片按此在新窗口浏览图片按此在新窗口浏览图片
--  作者:jx
--  发布时间:3/27/2007 7:22:00 PM

--  
Qr热心!
--  作者:菜小小
--  发布时间:3/27/2007 8:17:00 PM

--  
辛苦了,不过偶还是看不懂啊。
找到另外一个方法,用XSL。
XSL文件:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="playlist">
<xsl:for-each select="music">
<xsl:value-of select="@addres"/>
<br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

htm文件:
<html>
<script>
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("playlist.xml")
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("b.xsl")
document.write(xml.transformNode(xsl))
</script>

</html>


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
421.875ms