请问在有没有firefox中操作XML的 js代码.

tegger 2006-05-29 01:31:04
请问在有没有firefox中操作XML的 js代码,在firfox中要解析xml太别扭了,跟在ie中真的差得太远了.不知道大家有没这方面的资料或已写有的js代码,能快速的使用 firefox中的xml解析器的.
...全文
118 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianshul8 2006-05-29
  • 打赏
  • 举报
回复
至于 getNodeValue() 方法使用 try{}catch{}
是由于空标签( 标签对中无数据,如:<p /> 或 <p></p> ) 会抛出异常
tianshul8 2006-05-29
  • 打赏
  • 举报
回复
function getNodeValue( aoXml, asTagName , aiIndex ) {
try {
return aoXml.getElementsByTagName(asTagName)[aiIndex].firstChild.nodeValue;
} catch ( e ) {
return "";
}
}

function getNodeLen( aoXml, asTagName ) {
try {
return aoXml.getElementsByTagName( asTagName ).length ;
} catch( e ) {
return 0 ;
}
}

闲耘用以上方法
似乎可以在 IE6.0, firefox1.0, Opera8.0 正确上正确执行
meizz 2006-05-29
  • 打赏
  • 举报
回复
IE 与 FF 取的 childNodes 的集合是不相同的,你自己可以 alert(root.childNodes.length) 看看长度的不同,因为在FF里text也被认为是一个 node,因此我只好用 nodeType 滤掉这些不必要的东西了。
tegger 2006-05-29
  • 打赏
  • 举报
回复
太感谢meizz了, 为什么 要做一次 if(root.childNodes[i].nodeType==1)
我是想做分页,每页的相对位置照这样的话可能是不固定?应该怎么解决.
meizz 2006-05-29
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="JavaScript">
<!--
function MzXmlDocument()
{
if(document.implementation&&document.implementation.createDocument)
{
var doc=document.implementation.createDocument("","",null);
doc.addEventListener("load",function(e){this.readyState=4;},false);
doc.readyState=4; return doc;
}
else
{
var msxmls=["MSXML2","Microsoft","MSXML","MSXML3"];
for(var i=0;i<msxmls.length;i++)
try{return new ActiveXObject(msxmls[i]+'.DomDocument')}catch(e){}
throw new Error("Could not find an installed XML parser!");
}
}

var x = new MzXmlDocument();
x.async = false;
x.load("test.xml");
var root = x.documentElement;
for(var i=0;i<root.childNodes.length;i++)
{
if(root.childNodes[i].nodeType==1)
{
var file = root.childNodes[i].getAttribute("file");
caption = root.childNodes[i].childNodes[0].nodeValue;
alert(file +"\n"+ caption);
}
}
//-->
</SCRIPT>
tegger 2006-05-29
  • 打赏
  • 举报
回复
感谢楼上的,数据能不能给点例子
如将下列的
<?xml version="1.0" encoding="gb2312"?>
<Ring>
<Data id="1" author="周洁伦" price="2" file="1.wma" >功夫</Data>
<Data id="2" author="周洁伦" price="1.5" file="2.mp3">夜曲</Data>
<Data id="3" author="周洁伦" price="2" file="3.wma">发如雪</Data>
<Data id="4" author="王力宏" price="2" file="4.wma">大城小爱</Data>
<Data id="5" author="林俊杰" price="2" file="5.wma">曹操</Data>
<Data id="6" author="张韶涵" price="2" file="6.wma">香水百合</Data>
<Data id="7" author="张靓颖" price="2" file="7.wma">天下无双</Data>
<Data id="8" author="王力宏" price="2" file="8.wma">花田错</Data>
<Data id="9" author="王心凌" price="2" file="9.wma">睫毛弯弯</Data>
<Data id="10" author="金海心" price="2" file="10.wma">阳光下的星星</Data>

</Ring>
数据如何解析

在ie中用
root = doc.documentElement;
for(var i=0;i<root.childNodes.length;i++)
{
file = root.childNodes[postion].getAttribute("file")
caption = root.childNodes[postion].text
}
FireFox中应该写?
meizz 2006-05-29
  • 打赏
  • 举报
回复
在FF浏览器里使用XMLDOM
var xmldom = document.implementation.createDocument("", "" null);
其余的操作与IE里的XMLDOM类同

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧