如何使用Javascript正则表达式格式化XML内容
使用emeditor,当看着XML文档,它总是不清楚因为格式。这是一个emeditor宏自动格式化XML。下载:formatxml.rar(1021字节)下面的部分是这个页面版本的Javascript格式化XML代码。
复制代码代码如下所示:
XML格式的工具
string.prototype.removelineend =功能()
{
返回(this.replace /(<。+的+)(*( = * ))$ 1 $ 2)
}
功能formatxml(文本)
{
删除多余的空间
文本= + text.replace( / / g(),功能(0美元,名称、道具)
{
返回的名称++ props.replace( / +( W + =)/ g,1美元);
})替换< < };
注释编码
文本= text.replace( / 替换。(替换,G,函数($ 0,文本))
{
var =;
警报(RET);
返回页首;
})替换');
/调整格式
Var(RgX = / (| * / >)(*)(::(:(/)>)|(:))))/毫克;
无功nodestack = { };
无功输出= text.replace(RgX,功能(0美元,所有的名字,isbegin,isclosefull1,isclosefull2,isfull1,){
var =出来(isclosefull1 = =/)| |(isclosefull2 = =/)| |(isfull1 = =/)| |(isfull2 = =/);
/ /警报({,}加入出来。(t));
var前缀=;
如果(isbegin = ='!)
{
前缀= getprefix(nodestack。长度);
}
其他的
{
如果(isbegin!=
{
前缀= getprefix(nodestack。长度);
如果(!关闭)
{
NodeStack.push(人名);
}
}
其他的
{
NodeStack.pop();
前缀= getprefix(nodestack。长度);
}
}
var =+前缀+全部;
返回页首;
});
无功prefixspace = - 1;
VaR outputText = output.substring(1);
/ /警报(outputText);
注释和还原/解码,调制格式
outputText = outputtext.replace( / 替换(()),函数($ 0,前缀,文本)
{
警报({,{),前缀,},前缀;
如果(prefix.charat(0)= = R)
(1)prefix.substring前缀=;
文本= unescape(文本)。更换( / R / G,' ');
var =+前缀+;
警报(RET);
返回页首;
});
返回outputtext.replace( / S + $ / g,'')。更换( / R / G,R ');
}
功能getprefix(prefixindex)
{
var =;
var输出{ };
对于(var i = 0;i < prefixindex;+ +我)
{
Output.push(跨度);
}
返回output.join('');
}
btnformat_click()函数
{
var $ = document.getelementbyid;
$('output)。值= formatxml($(输入的)。值);
}