所以我有一个有效的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命名空间)?
答案 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
的功能?