# Any possibility of getting Single XML Tag

**URL:** <https://discuss.elastic.co/t/any-possibility-of-getting-single-xml-tag/62124>\
**Category:** Logstash\
**Created:** [October 4, 2016, 5:15am UTC](https://discuss.elastic.co/t/any-possibility-of-getting-single-xml-tag/62124 "2016-10-04T05:15:43Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![vinoossk](https://avatars.discourse-cdn.com/v4/letter/v/74df32/32.png) [@vinoossk](https://discuss.elastic.co/u/vinoossk)\
**Post date:** [October 4, 2016, 5:15am UTC](https://discuss.elastic.co/t/any-possibility-of-getting-single-xml-tag/62124/1 "2016-10-04T05:15:43Z")

</div>

`Is it possible to fetch single tag constantly like <ApplicationID> (irrespective of positions) across all XML's instead of iterating through XPATH ??`

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [October 4, 2016, 5:28am UTC](https://discuss.elastic.co/t/any-possibility-of-getting-single-xml-tag/62124/2 "2016-10-04T05:28:24Z")

</div>

Not really, but you could parse the whole XML and use a ruby filter to walk through the resulting data structure and save the ApplicationID values as you go.

---

<div class="post-metadata">

**Author:** ![vinoossk](https://avatars.discourse-cdn.com/v4/letter/v/74df32/32.png) [@vinoossk](https://discuss.elastic.co/u/vinoossk)\
**Post date:** [October 6, 2016, 9:51am UTC](https://discuss.elastic.co/t/any-possibility-of-getting-single-xml-tag/62124/3 "2016-10-06T09:51:00Z")

</div>

```
Thanks @magnusbaeck. Consider I am getting unbounded elements in below format and I want to parse specific tags?? (In the below DatasourceDetail may repeat n number of times). 

<ser:DataSourceDetail>
        <ser:DataSourceId>1014</ser:DataSourceId>
        <ser:DataSourceOperationID>GetPCMData-ParallelScope</ser:DataSourceOperationID>
        <ser:DataSourceResponseDuration>9347</ser:DataSourceResponseDuration>
        <ser:DataSourceRequestTimeStamp>2016-10-04T08:58:56.129-04:00</ser:DataSourceRequestTimeStamp>
        <ser:DataSourceResponseTimeStamp>2016-10-04T08:59:05.476-04:00</ser:DataSourceResponseTimeStamp>
      </ser:DataSourceDetail>
      <ser:DataSourceDetail xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ass="http://services.dnb.com/AssessmentProductServiceV2.0" xmlns:xte="http://services.dnb.com/XTEDataServiceV1.0" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
        <ser:DataSourceId>23585</ser:DataSourceId>
        <ser:DataSourceOperationID>Enhance Corporate Linkage</ser:DataSourceOperationID>
        <ser:DataSourceResultCode>00</ser:DataSourceResultCode>
        <ser:DataSourceResultText>Success</ser:DataSourceResultText>
        <ser:DataSourceResponseDuration>207</ser:DataSourceResponseDuration>
        <ser:DataSourceRequestTimeStamp>2016-10-04T08:58:56.303-04:00</ser:DataSourceRequestTimeStamp>
        <ser:DataSourceResponseTimeStamp>2016-10-04T08:58:56.510-04:00</ser:DataSourceResponseTimeStamp>
      </ser:DataSourceDetail>
      <ser:DataSourceDetail xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ass="http://services.dnb.com/AssessmentProductServiceV2.0" xmlns:xte="http://services.dnb.com/XTEDataServiceV1.0" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
        <ser:DataSourceId>19900</ser:DataSourceId>
        <ser:DataSourceOperationID>SLRM</ser:DataSourceOperationID>
        <ser:DataSourceResultCode>CM000</ser:DataSourceResultCode>
        <ser:DataSourceResultText>Success</ser:DataSourceResultText>
        <ser:DataSourceResponseDuration>680</ser:DataSourceResponseDuration>
        <ser:DataSourceRequestTimeStamp>2016-10-04T08:58:56.323-04:00</ser:DataSourceRequestTimeStamp>
        <ser:DataSourceResponseTimeStamp>2016-10-04T08:58:57.003-04:00</ser:DataSourceResponseTimeStamp>
      </ser:DataSourceDetail>
```

---

<div class="post-metadata">

**Author:** ![wiibaa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/wiibaa/32/44931_2.png) [@wiibaa](https://discuss.elastic.co/u/wiibaa)\
**Post date:** [October 14, 2016, 4:13am UTC](https://discuss.elastic.co/t/any-possibility-of-getting-single-xml-tag/62124/4 "2016-10-14T04:13:15Z")

</div>

@vinoossk your sample XML is missing a unique root tag, I suppose it exists as the SOAP body or something else.

If I understood you correctly you want to collect all the values for a specific field like DataSourceId, am I right ?  
If yes this should be achievable with xpath using the double slash

```
xml {
  source => "message"
  store_xml => "false"
  remove_namespaces => true
  xpath => ["//DataSourceId/text()","datasources"]
  remove_field => "message"
}

```

create a single event

```
 {
   "@version" => "1",
 "@timestamp" => "2016-10-14T04:08:28.785Z",
       "host" => "debian",
"datasources" => [
    [0] "1014",
    [1] "23585",
    [2] "19900"
]

```

}

is it what you are trying to achieve ?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 4:34am UTC](https://discuss.elastic.co/t/any-possibility-of-getting-single-xml-tag/62124/5 "2017-07-06T04:34:16Z")

</div>


