@ 文件类型/ xml
探测器插件 文件类型 用于 XML 文件.
安装
npm install @file-type/xml
使用量
以下示例显示如何将 XML 检测器添加到 文件类型。 。 。 .
import {FileTypeParser} from 'file-type';
import {detectXml} from '@file-type/xml';
const parser = new FileTypeParser({customDetectors: [detectXml]});
const fileType = await parser.fromFile('example.kml');
console.log(fileType);
与 file-type 22,节点js 22或更新是需要的. 对流道检测,通过 a
网络 ReadableStream 改为 parser.fromStream()转换节点 Readable 与
Readable.toWeb()数字 :
import {createReadStream} from 'node:fs';
import {Readable} from 'node:stream';
const fileType = await parser.fromStream(Readable.toWeb(createReadStream('example.kml')));
探测器最多检查了16个KiB,包括任何字节顺序标记. 为了改变这个
限制,创建带有 sampleSize 以字节表示 :
import {FileTypeParser} from 'file-type';
import {createXmlDetector} from '@file-type/xml';
const parser = new FileTypeParser({
customDetectors: [createXmlDetector({sampleSize: 64 * 1024})]
});
限制既适用于Prolog检测,也适用于XML解析. 如果没有 XML 签名,则
在样本中找到, 检测器返回 undefined 而不消耗投入.
如果XML得到承认,但其具体格式无法在样本中确定,
它会返回 application/xml。 。 。 . sampleSize 必须是正的安全整数.
这个 file-type 流采样选项是分开的; 当使用时 fileTypeStream设置
联合国 sampleSize 如果你想要一个更大的样本.
您也可以使用外部的 XML 探测器 文件类型数字 :
import {XmlTextDetector} from '@file-type/xml';
const xmlTextDetector = new XmlTextDetector();
xmlTextDetector.write('<svg xmlns="http://www.w3.org/2000/svg"><path fill="#00CD9F"/></svg>');
const fileType = xmlTextDetector.fileType;
console.log(JSON.stringify(fileType)); // Outputs: {"ext":"svg","mime":"image/svg+xml"}
支持文件格式
- XML 数据 (XML 的默认, 除非检测到更具体的格式)
- 苹果属性列表,
.plist - 原子
- 多库
- GML (地理标记语言)
- GPX( GPS 交换格式)
- KML (关键孔标记语言)
- MathML(数学标记语言)
- 音乐XML, 未压缩
- OPML( 大纲处理器标记语言)
- RSS( RDF 站点摘要或非常简单的聚合)
- SMIL:(同步多媒体融合语言)
- SVG:(可缩放矢量图形)
- TEI, 文本编码倡议
- TTML : (时间文本标记语言)
- X3D (可扩展的 三维)
- 第XHTML号
- XLIFF (XML 本地化 互换文件格式)
许可证
本项目根据以下规定获得许可证: MIT 许可证. 随意使用、修改和按需要分发.