输入XML
粘贴需要处理的XML代码
处理选项
选择处理方式
处理结果
处理后的结果
代码示例
JavaScript XML处理
// XML美化
function beautifyXML(xml, indent = ' ') {
let formatted = '';
let pad = 0;
const tags = xml.match(/<[^>]+>/g) || [];
for (let i = 0; i < xml.length; i++) {
const tag = tags.shift();
if (!tag) break;
if (tag.startsWith('')) {
pad = Math.max(0, pad - 1);
}
formatted += indent.repeat(pad) + tag;
if (tag.startsWith('<') && !tag.startsWith('') && !tag.endsWith('/>') && !tag.startsWith('')) {
pad++;
}
}
return formatted;
}
// XML压缩
function minifyXML(xml) {
return xml.replace(/>\s+<').replace(/\s+/g, ' ').trim();
}
Python XML处理
import xml.etree.ElementTree as ET
import json
# XML美化
def beautify_xml(xml_str, indent=' '):
root = ET.fromstring(xml_str)
def indent(elem, level=0):
i = '\n' + level * indent
if len(elem):
if not elem.text or not elem.text.strip():
elem.text = i + indent
if not elem.tail or not elem.tail.strip():
elem.tail = i
for elem in elem:
indent(elem, level + 1)
if not elem.tail or not elem.tail.strip():
elem.tail = i
else:
if level and (not elem.tail or not elem.tail.strip()):
elem.tail = i
indent(root)
return ET.tostring(root, encoding='unicode')
# XML转JSON
def xml_to_json(xml_str):
root = ET.fromstring(xml_str)
def element_to_dict(elem):
result = {}
# 处理属性
result.update(elem.attrib)
# 处理子元素
for child in elem:
child_data = element_to_dict(child)
if child.tag in result:
if not isinstance(result[child.tag], list):
result[child.tag] = [result[child.tag]]
result[child.tag].append(child_data)
else:
result[child.tag] = child_data
# 处理文本
if elem.text and elem.text.strip():
if result:
result['#text'] = elem.text.strip()
else:
return elem.text.strip()
return result
return {root.tag: element_to_dict(root)}
关于XML
什么是XML?
XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。XML使用标签来描述数据,具有良好的可读性和可扩展性,广泛应用于配置文件、数据交换、Web服务等领域。
XML vs JSON
- XML:更严格、支持命名空间、适合复杂文档、文件较大
- JSON:更简洁、解析更快、适合Web API、文件较小