在splunk中使用xpath进行搜索时如何处理deafult命名空间?

时间:2015-10-01 07:19:22

标签: xpath splunk

所以我有一个有效的xml文件,如下所示:

[a-z]

我已将其作为数据添加到splunk中,并尝试使用如下搜索进行搜索:

<session xmlns="http://winscp.net/schema/session/1.0" name="mysession@10.0.0.22" start="2015-09-28T05:00:01.974Z"> <ls> <destination value="/" /> <files> <file> <filename value="." /> <type value="d" /> <modification value="2015-09-28T05:44:14.000Z" /> <permissions value="rw-rw----" /> </file> <file> <filename value=".." /> <type value="d" /> <modification value="2015-09-28T05:44:14.000Z" /> <permissions value="rw-rw----" /> </file> <file> <filename value="55800379_150928_071525.zip" /> <type value="-" /> <size value="999124" /> <modification value="2015-09-28T05:36:08.000Z" /> <permissions value="rw-rw----" /> </file> </files> <result success="true" /> </ls> <download> <filename value="/55800379_150928_071525.zip" /> <destination value="C:\somefolder\55800478_150928_071525.zip" /> <result success="true" /> </download> <rm> <filename value="/55800379_150928_071525.zip" /> <result success="true" /> </rm> </session>

然而,在这种情况下,afield字段没有填充(我期待三个值'。','..'和'55800379_150928_071525.zip')。所以我把错误归结为会话标记中的xmlns,当第一行看起来像这样(注意:没有xmlns属性)时,搜索会按照我的预期进行:

source="sample5.xml" host="dummy1" sourcetype="WinSCP XML" | xpath outfield=afield "//ls/files/file/filename/@value"

我需要在xpath中添加什么来获取我正在寻找的结果(我非常希望在导入之前不必预处理我的日志以删除XML命名空间)?

1 个答案:

答案 0 :(得分:0)

嗯,这看起来像一个未命名的命名空间,我可以通过使用我的libxml2包装程序注册自定义命名空间前缀来获得:

$ xpquery -n 'x:http://winscp.net/schema/session/1.0' '//x:ls/x:files/x:file/x:filename/@value' blah.xml 
 value="."
 value=".."
 value="55800379_150928_071525.zip"
$ 

检查您的xpath计划是否支持相当于libxml2 registerNs的功能?