在你的设备上运行 · 你的文件从不离开你的设备。
拖入或粘贴CSV,得到一个XML文档:外层<root>,每行一个<item>,每列一个以表头命名的子元素。分隔符自动识别(逗号、分号、制表符、竖线),带引号的字段按RFC 4180处理,UTF-8的BOM会被去掉。
XML不能用作元素名的列名——含空格、符号或以数字开头——会用下划线修正("Unit price"变成Unit_price),输出一定格式规范。值以文本写在元素里,不生成属性,任何解析器都容易处理。
下载前可以看到前200行的预览,转换完全在你的设备上进行。
不适用于: 生成某种特定规范的XML(银行、税务或电商格式)——元素名来自你的表头,不来自任何规范。
XML把每个值都当作文本保存,所以识别数字或true、false没有任何好处,这个页面也不提供。每个值都按CSV里的写法写出:1.50还是1.50,1e3还是1e3,TRUE还是TRUE,单词NULL还是NULL。空单元格得到一个空元素,比如<note/>;前导零,比如007,也会保留。
先处理重复和空白的表头:两列都叫name,变成<name>和<name_2>;第三列表头空白,变成<column_3>。然后把每个名字改成XML合法的形式。Total (USD)变成Total__USD_,因为空格和括号都变成下划线;1st变成_1st。连字符和点是允许的,所以e-mail还是e-mail,address.city也还是一个叫这个名字的元素,不会拆成嵌套元素。任何文字的表头,比如阿拉伯文或中文,都原样保留。
两个表头最后变成同一个名字时,比如"a b"和"a_b",在每个<item>里都会写成<a_b>。按名字读取元素的程序可能只看到第一个,所以请先在CSV里把其中一个改名。
文本按和CSV转JSON(/csv-to-json)相同的规则读取,那个页面用例子解释了这些规则:引号怎么用、分隔符怎么找、文件编码怎么识别,以及单元格比表头多或少的行会怎样。在XML里,缺少的单元格变成空元素。超出最后一个表头的单元格没有元素名,会被略去,提示会说明有多少行有这种情况、第一处在哪里。
<root>和<item>这两个名字是固定的。如果某个系统要求别的名字,比如<customers>和<customer>,下载后在文本编辑器里替换掉;结构的其他部分都不用改。
本页的其他语言版本: English · العربية · Deutsch · Français · Español · Русский · Português · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা