5

私はlogstashの初心者であり、それを介してxmlファイルフィルターを入力し、特定のフォーマットされたJSONファイルを出力しようとしています

xml の例を次に示します。

<?xml version="1.0" encoding="UTF-8" ?><apartmentFeed version="1.0" timestamp="20150827:17:19:06">
<apartment id="675">
<general>
    <reference>000671</reference>
    <name><![CDATA[Brunswick Centre]]>
    </name>
</general>  
</apartment>
<apartment id="1221">
<general>
    <reference>001218</reference>
    <name><![CDATA[Saint Luke's]]>
    </name>
</general>
</apartment>
<apartment id="1222">
<general>
    <reference>001219</reference>
    <name><![CDATA[Southwood Abstract]]>
    </name>
</general>
</apartment>
</apartmentFeed>

ここに私の設定ファイルがあります

input {
file {
    path => "C:/logstash/myXML.xml"
    start_position => "beginning"
}
}
filter { multiline {
       pattern => "^\s|</apartment>|^[A-Za-z].*"
        what => "previous"
}
xml {
        store_xml => "false"
        source => "message"
        xpath => [
                "/apartment/@id", "apartment_id",
                "/apartment/reference/text()","apartment_txt"
        ]
}
}
output {
stdout { codec => rubydebug }
file { 
codec => "json"
path => ["C:/logstash/temp.json"]
}
}

出力は必要な情報をキャプチャしているように見えますが、必要のないゴミもたくさん出力します。最終出力を次のようにしたい

{"appartment":[
{"id":"675", "reference":"000671"},
{"id":"1221", "reference":"001218"},
{"id":"1222", "reference":"001219"}
]}

これどうやってするの

4

0 に答える 0