基于递归算法的XML文本格式的判断(javascript实现)
来源:互联网 发布:淘宝网内部优惠券 编辑:程序博客网 时间:2024/06/05 15:07
定义5个xml字符串:
var str1=" <a> <b>b</b> <c>c</c> </a> "
var str2=" <a > <b>b</b> <c>c</c> </a> "
var str3=" <a> <b>b</b> <c>c</c> "
var str4=" <a> <b >b</b> <c>c</c> </a> "
var str5=" <a> b</b> <c>c</c> </a> "
在isXml函数中测试
isXml(str1); //无输出
isXml(str2); //<>中有空格
isXml(str3); //<>元素不成对
isXml(str4); //<>中有空格
isXml(str5); //<>元素不成对
结果如下图:
源码如下:
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<title>XML格式判断</title>
</head>
<body>
<script type="text/javascript">
var str1=" <a> <b>b</b> <c>c</c> </a> "
var str2=" <a > <b>b</b> <c>c</c> </a> "
var str3=" <a> <b>b</b> <c>c</c> "
var str4=" <a> <b >b</b> <c>c</c> </a> "
var str5=" <a> b</b> <c>c</c> </a> "
isXml(str1); //无输出
isXml(str2); //<>中有空格
isXml(str3); //<>元素不成对
isXml(str4); //<>中有空格
isXml(str5); //<>元素不成对
function isXml(str){
if(str.indexOf("<")==-1) return;
var n1=str.indexOf("<");
var n2=str.indexOf(">",n1);
var sub_str=str.substring(n1+1,n2);
if(!isBlank(sub_str)) return;
if(!isPair(str,sub_str)) return;
var n3=str.indexOf("</"+sub_str+">");
var sub_str_str=str.substring(n2+1,n3);
isXmlXml(sub_str_str);
}
function isBlank(str){
for(var i=0;i<str.length;i++){
if(str.charAt(i)==" "){
console.log("<>中有空格");
return false;
}
}
return true;
}
function isPair(str,sub_str){
if(str.indexOf("</"+sub_str+">")==-1){
console.log("元素不成对");
return false;
}
return true;
}
function isXmlXml(str){
if(str.indexOf("<")==-1) return;
var n1=str.indexOf("<");
var n2=str.indexOf(">",n1);
var sub_str=str.substring(n1+1,n2);
if(!isBlank(sub_str)) return;
if(!isPair(str,sub_str)) return;
var n3=str.indexOf("</"+sub_str+">");
var n4=str.indexOf(">",n3);
var sub_str1=str.substring(n1,n4+1);
isXml(sub_str1); //递归检验
var sub_str2=str.substring(n4+1);
isXmlXml(sub_str2); //递归检验其余的部分
}
</script>
</body>
</html>
- 基于递归算法的XML文本格式的判断(javascript实现)
- 文本读写与编码格式(1)----文本格式判断(基于文件的FileMap)
- javascript实现基于XML的导航功能
- JAVASCRIPT实现基于文本的自动智能聊天机器人
- 判断图片的格式(Javascript)
- 基于JavaScript的前端常用排序算法实现(1)
- 如何判断不同格式的文本
- 文本分类的python实现-基于SVM算法
- 文本分类的python实现-基于Xgboost算法
- 文本分类的python实现-基于SVM算法
- 文本分类的python实现-基于Xgboost算法
- 快速傅里叶变换算法原理简述 基于递归的fft实现
- JavaScript判断文本输入框的IP地址格式是否正确
- 基于贝叶斯算法的文本分类算法
- 基于贝叶斯算法的文本分类算法
- 基于贝叶斯算法的文本分类算法
- 基于贝叶斯算法的文本分类算法
- 基于贝叶斯算法的文本分类算法
- 阻止表单提交
- 正则表达式知识详解之多行模式 (java版示例)
- xcode调试程序有时不显示变量的值?
- NSRunLoop概述
- 【Android数据传递】Intent传递List和Object和List<Object>(附源码)
- 基于递归算法的XML文本格式的判断(javascript实现)
- js判断数字和字母组合
- IP地址分类与子网掩码有关计算
- ./configure: error: SSL modules require the OpenSSL library.
- 第八周项目35-人数不定的工资类
- lightmap Snapshot
- 面向对象的PHP
- Android AssetManager 简读<2>
- 【codevs 1021】玛丽卡