js xml 字符串 格式化
时间: 2023-07-30 10:05:18 浏览: 43
对于JavaScript中的XML字符串格式化,可以使用以下函数:
```
function formatXml(xml) {
const reg = /(>)(<)(\/*)/g;
const wsexp = / *(.*) +\n/g;
let prettyXml = xml.replace(reg, '$1\n$2$3').replace(wsexp, '$1\n').replace(/\n/g, '\n ');
let last = 0;
let formatted = '';
let lines = prettyXml.split('\n');
let indent = 0;
let lastType = 'other';
for (let i = 0; i < lines.length; i++) {
let trim = true;
let l = lines[i].replace(/\s+$/, '');
let singleIndent = ' ';
if (l.match(/<\/\w[^>]*>$/)) {
indent--;
lastType = 'closeTag';
} else if (l.match(/^<\w([^>]*[^\/])?>.*$/)) {
indent++;
lastType = 'openTag';
} else if (l.match(/^<\w.*\/>$/)) {
lastType = 'singleTag';
trim = false;
} else {
lastType = 'other';
}
formatted += singleIndent.repeat(indent) + l + (trim ? '\n' : '');
}
return formatted;
}
```
这个函数接收一个XML字符串作为参数,然后使用正则表达式对字符串进行格式化和缩进,最后返回格式化后的字符串。
需要注意的是,这个函数只是一个简单的格式化函数,对于复杂的XML文档可能无法完全正确地格式化。如果需要更加精确的XML格式化,可以考虑使用相关的XML库。