Splunk Search

multiline match for same pattern

tven
Explorer
<Product>
 <ProductName>(\w+)</ProductName>
 <ProductName>(\w+)</ProductName>
 <ProductName>(\w+)</ProductName>
</Product>

How do i capture all the product name when the number of ProductName elements is variable? And not sure how to assign the group capture to a named variable when you have 0 or more ProductNames.

index=xyz sourcetype=abc |rex "(?s)<ProductName>(?P<product_sku>\w+)</ProductName>" captures one occurence.

0 Karma

kristian_kolb
Ultra Champion

Have you looked at MV_ADD=true in order to get more than the last value?

Basically, you need to do the following changes/additions on your search head, or on your indexer if you don't have a dedicated search head;

in props.conf

[your_xml_sourcetype]
REPORT-gimme_codes = prod_code_extraction

in transforms.conf

[prod_code_extraction]
REGEX = <ProductName>([^<]+)<
FORMAT = product_sku::$1
MV_ADD = True

Hope this helps,

Kristian

0 Karma
Get Updates on the Splunk Community!

Unlock Database Monitoring with Splunk Observability Cloud

  In today’s fast-paced digital landscape, even minor database slowdowns can disrupt user experiences and ...

Purpose in Action: How Splunk Is Helping Power an Inclusive Future for All

At Cisco, purpose isn’t a tagline—it’s a commitment. Cisco’s FY25 Purpose Report outlines how the company is ...

[Upcoming Webinar] Demo Day: Transforming IT Operations with Splunk

Join us for a live Demo Day at the Cisco Store on January 21st 10:00am - 11:00am PST In the fast-paced world ...