Splunk Search

How do I extract xml tag using regex?

merrin
Engager

I tried to extract xml tagNames as fields fieldNameStartTag and fieldNameEndTag using the following.

rex field=_raw "<(?.)>([^<]+)</(?.)>"
But it does not extract all tags correctly. For example I have this xml:

abc
xyz

What I'm looking for is fieldNameStartTag and/or fieldNameEndTag to have values "ChildOne" and "ChildTwo". But the regex above gives me values like these:
1. Parent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.abcd.com"> abc
2. ChildOne>xyz

Any help is appreciated.

Tags (2)
0 Karma

gkanapathy
Splunk Employee
Splunk Employee

You should use the spath command, if you're on 4.3 or higher. If you're on older versions, the xmlkv command will also work for you.

emechler_splunk
Splunk Employee
Splunk Employee

Have you checked out the xmlkv command? This allows you to automatically extract KV pairs from XML formatted data without any regex's:

http://docs.splunk.com/Documentation/Splunk/4.3.1/SearchReference/xmlkv

0 Karma
Get Updates on the Splunk Community!

Enter the Dashboard Challenge and Watch the .conf24 Global Broadcast!

The Splunk Community Dashboard Challenge is still happening, and it's not too late to enter for the week of ...

Join Us at the Builder Bar at .conf24 – Empowering Innovation and Collaboration

What is the Builder Bar? The Builder Bar is more than just a place; it's a hub of creativity, collaboration, ...

Combine Multiline Logs into a Single Event with SOCK - a Guide for Advanced Users

This article is the continuation of the “Combine multiline logs into a single event with SOCK - a step-by-step ...