给你一个我以前写的解析程序:function String.prototype.getXml(searchfor,index)
{
if (index == null || index ==0) index =1;
// index从1开始
var start="<"+searchfor+">";
var end="</"+searchfor+">";
var a=0;
var b=0;
for (var i=0;(i<index && a>-1 && b>-1) ;i++ )
{
a=this.indexOf(start,b);
b=this.indexOf(end,a);
}
if (a<0 || b<0)
{
return "notfound";
}
a+=start.length;
return this.substring(a,b);
}
{
if (index == null || index ==0) index =1;
// index从1开始
var start="<"+searchfor+">";
var end="</"+searchfor+">";
var a=0;
var b=0;
for (var i=0;(i<index && a>-1 && b>-1) ;i++ )
{
a=this.indexOf(start,b);
b=this.indexOf(end,a);
}
if (a<0 || b<0)
{
return "notfound";
}
a+=start.length;
return this.substring(a,b);
}
解决方案 »
- 传递的字符串怎么变成了数字啊??
- 求一段JS代码,高手进
- 有关js的简单问题
- 关于JS的一些基本问题!
- 实现能从下拉菜单里选择,也能手工输入,关键还要能选择下拉的多项,该如何实现?
- 在button在onclick事件弹出一个窗口,怎么使这个窗口。。。
- 为什么浏览器说不是对象?在线等,高分
- 关于IE中打印的问题!
- 请问我有一组同名的复选框checkbox,我提交前,怎样去判断被选中了几个,分别得到他们的值做些处理。谢谢
- 用opener可以吗?
- 关于window.showModalDialog传递参数的问题,多多谢,在线等待
- 请问,如何用javascript实现一个按钮按下后,使所有的复选框变灰不能再用?
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>emu's xml function</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
function String.prototype.getXml(searchfor,index)
{
if (index == null || index ==0) index =1;
// index从1开始
var start="<"+searchfor+">";
var end="</"+searchfor+">";
var a=0;
var b=0;
for (var i=0;(i<index && a>-1 && b>-1) ;i++ )
{
a=this.indexOf(start,b);
b=this.indexOf(end,a);
}
if (a<0 || b<0)
{
return "notfound";
}
a+=start.length;
return this.substring(a,b);
}var srcString = "<abc>aa</abc><abc>bb</abc><abc>cc</abc><abc>dd</abc><abc>ee</abc><abc>ff</abc>";
var result = new Array();
var x;for (var i=0;x!="notfound";i++)
{
x = srcString.getXml("abc",i+1)
if (x!="notfound")
result[i] = x;
}alert(result)//-->
</SCRIPT>
</head>
<body></body>
</html>
但是,我的想法是能解析大多的XML字符,而并非一种特殊的标记。关于如何解析,我现在的想法有两种:
1、顺序依次查找法:比如第一次找“<”,第二次找“ ”(空格),第三次找“=”,然后找“"”(引号),再找引号,找"/"或找">"…………
但是,很明显,当一个属性中含有特殊字符时,或有包含特殊字符的CDATA数据时,就会出错!
2、“分牌”方法:就好象把一付扑克中相同的牌分好一样,依次读每一个字符,将字符放到数组的指定位置。但是我担心这样的方法是否会很慢!
希望曾经编写过编译器的朋友或编译原理考高分的朋友来一起探讨这个问题!
建议去找一些XML解析器的源代码.
一般是在服务器端加一个filter!
判断如果客户端的版本
大于1e5则直接输出到客户端!否则在服务器端解析!
var xmldoc = new ActiveXObject("Microsoft.XMLDOM")
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
我一直都在最低级的IE 5.0下调试XML,我用得很顺,没有什么限制的
但如果又读又写,那就比较麻烦。如果还有注释的话,还得先消除注释。