Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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
Xpath 使用logstash解析具有名称空间的XML文档_Xpath_Logstash_Logstash Grok_Logstash Configuration - Fatal编程技术网

Xpath 使用logstash解析具有名称空间的XML文档

Xpath 使用logstash解析具有名称空间的XML文档,xpath,logstash,logstash-grok,logstash-configuration,Xpath,Logstash,Logstash Grok,Logstash Configuration,我正在尝试使用logstash解析以下xml数据。我可以通过从标记中删除名称空间来完成。但是,当我在实际文档中尝试使用名称空间时,无法解析字段。是否有人可以帮助我使用名称空间,或者我是否在其他地方出错 <Book:Body> <Book:Head> <bookname>Book:Name</bookname> <ns:Hello xmlns:ns="www.example.com">

我正在尝试使用logstash解析以下xml数据。我可以通过从标记中删除名称空间来完成。但是,当我在实际文档中尝试使用名称空间时,无法解析字段。是否有人可以帮助我使用名称空间,或者我是否在其他地方出错

<Book:Body>
    <Book:Head>
        <bookname>Book:Name</bookname>
            <ns:Hello xmlns:ns="www.example.com">
                <ns:BookDetails>
                    <ns:ID>123456</ns:ID>
                    <ns:Name>ABC</ns:Name>
                </ns:BookDetails>
        </ns:Hello xmlns:ns="www.example.com">
    </Book:Head>
</Book:Body>

书名
123456
基础知识
以下是我的配置文件:

multiline   {
                       pattern =>  "<Book:Body>"
                        what => "previous"
                        negate => "true"
            }

                xml {
                        store_xml => "false"
                        source => "message"
                        remove_namespaces => "true"

                        xpath =>[
                                "/Book/Book/BookDetails/ID/text()","ID",

                                "/Book/Book/BookDetails/Name/text()","Name"
                                ]


                    }

                mutate {
                        add_field => ["IDIndexed", "%{ID}"]
                        add_field => ["NameIndexed", "%{Name}"]
                        }
多行{
模式=>“”
什么=>“以前的”
否定=>“真”
}
xml{
store_xml=>“false”
source=>“消息”
删除_名称空间=>“true”
xpath=>[
“/Book/Book/BookDetails/ID/text(),“ID”,
/Book/Book/BookDetails/Name/text(),“Name”
]
}
变异{
add_field=>[“ID索引”,“%{ID}”]
add_field=>[“名称索引”,“%{Name}”]
}
由于它没有被解析,我只是使用mutate获取%{ID}和%{Name},而不是获取它们的实际值

问题在xpath中: 试试这个


您的XPath似乎与示例XML不匹配。根据您的示例,我希望看到:
/Body/Head/bookname/Hello/BookDetails/ID
。非常感谢..它很有帮助!:)
xpath => [
 "/Body/head/Hello/BookD/BookDetails/ID/text()", "ID",
  "/Body/head/Hello/BookD/BookDetails/Name/text()", "Name",
    ]