【发布时间】:2020-10-02 17:13:57
【问题描述】:
我正在编写一个 Rust 命令行程序来 grep 日志文件。它逐行读取输入文件,并创建包含“基本”日志行(带有时间戳、日志级别、线程名称、类名等)和“额外”日志行(包含嵌入式 XML 或 JSON 消息)的记录。这是一个简化的示例:
(preceding line)
[2020-10-02 12:00:00,000Z][INFO][input-io][XMLReader] Received XML message:
<?xml version="1.0"?>
<Outer foo="bar"><Inner baz="qux"/></Outer>
(following line)
我已经到了尝试为单个记录漂亮地打印嵌入式 XML 消息的地步。我需要做的是获取“额外的”日志行(存储在 Vec<String> 中)并将它们传递给 XML 拉式阅读器库之一(我目前正在查看 quick_xml,因为它在基准测试中表现良好,但是如有必要,我会使用不同的)。
我的问题是 quick_xml Reader 类需要 BufRead 实现,但我不知道如何从 Vec<String> 创建它。谁能给点建议?
另外,一些其他语言的 XML 拉式阅读器库支持以任意块的形式提供文本。有没有这样的 XML 库?
【问题讨论】:
标签: rust