Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logstash XML输入日志存储的数组时的条件拆分_Logstash - Fatal编程技术网

Logstash XML输入日志存储的数组时的条件拆分

Logstash XML输入日志存储的数组时的条件拆分,logstash,Logstash,我正在尝试解析一个XML文件,并希望拆分。但是分割字段并不总是数组。 XML结构: <A a="1"> <B b="1" q="10"> <C c="1" r="20"></C> </B> <B b="2" q="11"> <C c="2" r="21"></C> <C c="3" r="22"> <M m="1" />

我正在尝试解析一个XML文件,并希望拆分。但是分割字段并不总是数组。 XML结构:

<A a="1">
  <B b="1" q="10">
    <C c="1" r="20"></C>
  </B>
  <B b="2" q="11">
    <C c="2" r="21"></C>
    <C c="3" r="22">
      <M m="1" />
    </C>
  <B>
</A>
由于只能在字符串或数组中进行拆分,因此我得到了一个错误。 如何将字符串变为数组,或者是否有其他方法解决此问题

预期产出:

{
 C => {
   c => 1,
   r => 20,
 }
 B => {
   b => 1,
   q => 10,
 }
}
{
 C => {
   c => 2,
   r => 20,
 }
 B => {
   b => 2,
   q => 11,
 }
}
{
 C => {
   c => 3,
   r => 22,
   M => {
     m => 1
   }
 }
 B => {
   b => 2,
   q => 11,
 }
}

每个嵌套事件作为一个单独的事件,并作为不同的事件(行)存储在弹性搜索中

“预期产出是多少?”苏菲扬霍里补充道。
{
 C => {
   c => 1,
   r => 20,
 }
 B => {
   b => 1,
   q => 10,
 }
}
{
 C => {
   c => 2,
   r => 20,
 }
 B => {
   b => 2,
   q => 11,
 }
}
{
 C => {
   c => 3,
   r => 22,
   M => {
     m => 1
   }
 }
 B => {
   b => 2,
   q => 11,
 }
}