XML 解码
编辑XML 解码
编辑decode_xml
处理器解码存储在field
键下的XML数据。它将结果输出到target_field
。
此示例演示如何解码message
字段中包含的XML字符串,并将生成的字段写入文档的根目录。任何已存在的字段都将被覆盖。
processors: - decode_xml: field: message target_field: "" overwrite_keys: true
默认情况下,发生的任何解码错误都会停止处理链,并将错误添加到error.message
字段。要忽略所有错误并继续执行下一个处理器,可以设置ignore_failure: true
。要专门忽略由field
不存在引起的故障,可以设置ignore_missing: true
。
processors: - decode_xml: field: example target_field: xml ignore_missing: true ignore_failure: true
默认情况下,所有从XML转换的键都将名称转换为小写。如果需要禁用此行为,可以使用以下示例
processors: - decode_xml: field: message target_field: xml to_lower: false
示例 XML 输入
<catalog> <book seq="1"> <author>William H. Gaddis</author> <title>The Recognitions</title> <review>One of the great seminal American novels of the 20th century.</review> </book> </catalog>
将产生以下输出
{ "xml": { "catalog": { "book": { "author": "William H. Gaddis", "review": "One of the great seminal American novels of the 20th century.", "seq": "1", "title": "The Recognitions" } } } }
支持的配置选项为
-
field
- (必填) 包含XML的源字段。默认为
message
。 -
target_field
- (可选) 将解码的XML写入的字段。默认情况下,解码的XML对象替换读取它的字段。要将解码的XML字段合并到事件的根目录,请使用空字符串指定
target_field
(target_field: ""
)。请注意,null
值(target_field:
) 的处理方式与根本未设置该字段相同。 -
overwrite_keys
- (可选) 一个布尔值,指定事件中已存在的键是否会被解码的XML对象中的键覆盖。默认值为
true
。 -
to_lower
- (可选) 将所有键转换为小写。接受
true
或false
。默认值为true
。 -
document_id
- (可选) 用作文档 ID 的 XML 键。如果已配置,则该字段将从原始 XML 文档中删除并存储在
@metadata._id
中。 -
ignore_missing
- (可选) 如果为
true
,则当指定字段不存在时,处理器不会返回错误。默认为false
。 -
ignore_failure
- (可选) 忽略处理器产生的所有错误。默认为
false
。
请参阅条件,了解支持的条件列表。