反转xpath路径表达式为html结构(一):单层标签反转解析;
var unXpath=function(X){
var A=X.split(/\]\[|\[|\]/);//属性分组处理
A[0]=A[0].replace(/(#)(\w+(?=(\s|\.|\[|$)))/,' id="$2"');//转换ID
A[0]=A[0].replace(/(\.)(\S+(?=($)))/,' class="$2"').replace(/\./g," ");//转换class
var T='<{a}></{b}>'.replace(/{a}/,A.join(" ")).replace(/{b}/,A[0].split(" ")[0]);//组合生成html完整结构
return T.replace(/(\s>|\s{2}\/>)/,">").replace(/(><\/)(input|img|br)(>)/," />");//单闭合标签处理
}
alert(unXpath('div#I.me.she.he[id="info"][title="小web"]'));
//返回<div id="info" class="me she he" title="小web"></div>
alert(unXpath('input#Ta.she[type="text"][title="小web"]'));
//返回<input type="text" id="Ta" class="she" title="小web" />
alert(unXpath('input#menu'));
//返回<input id="menu" />
alert(unXpath('br'));
//返回<br />
alert(unXpath('img[src="i.gif"]'));
//返回<img src="i.gif" alt="" />
var A=X.split(/\]\[|\[|\]/);//属性分组处理
A[0]=A[0].replace(/(#)(\w+(?=(\s|\.|\[|$)))/,' id="$2"');//转换ID
A[0]=A[0].replace(/(\.)(\S+(?=($)))/,' class="$2"').replace(/\./g," ");//转换class
var T='<{a}></{b}>'.replace(/{a}/,A.join(" ")).replace(/{b}/,A[0].split(" ")[0]);//组合生成html完整结构
return T.replace(/(\s>|\s{2}\/>)/,">").replace(/(><\/)(input|img|br)(>)/," />");//单闭合标签处理
}
alert(unXpath('div#I.me.she.he[id="info"][title="小web"]'));
//返回<div id="info" class="me she he" title="小web"></div>
alert(unXpath('input#Ta.she[type="text"][title="小web"]'));
//返回<input type="text" id="Ta" class="she" title="小web" />
alert(unXpath('input#menu'));
//返回<input id="menu" />
alert(unXpath('br'));
//返回<br />
alert(unXpath('img[src="i.gif"]'));
//返回<img src="i.gif" alt="" />
本文介绍了一种将XPath路径表达式转换为HTML结构的方法,通过解析XPath路径并转换ID和类属性,生成对应的HTML标签。文章提供了JavaScript代码实现,展示了如何处理不同类型的XPath表达式。
1419

被折叠的 条评论
为什么被折叠?



