How to extract string between tags from an XML file

One Star

How to extract string between tags from an XML file

Hi all,
I am trying to extract text between two tags of an xml file, but with negative results.
This is the xml structure and I need to extract the contents of the body, for some post processing.
<soap:Envelope>
<soap:Header>
...
</soap:Header>
<soap:Body>
<ns1:Response>
<Object id="id:1234567890">
....
</Object>
</ns1:Response>
</soap:Body>
</soap:Header>
</soap:Envelope>

I'm using the command tExtractXMLField, and these component properties:
- Property Type: Built-In
- Schema Type: Built-In
- XML field: Body
- Loop XPath query: "/Envelope/Body/*"
- Mapping: Column XPath query
Body "Body"
- Schema: Column Type ...
Body String ...
What's wrong? Probably wrong with the "Loop XPath query"?
Thanks in advance
Nic
Community Manager

Re: How to extract string between tags from an XML file

Hi
As a newbie, I would suggest you to use metadata manager to create a XML metadata follows the wizards, refer to Setting up an XML schema for an input file.
Here the Loop Xpath query should be:
"/soap:Envelope/soap:Body"
Shong
----------------------------------------------------------
Talend | Data Agility for Modern Business
One Star

Re: How to extract string between tags from an XML file

Hi Shong,
first of all thanks for your response. The script xml I posted, is a soap response.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<capabilities xmlns=........</capabilities>
</soapenv:Header>
<soapenv:Body>
<ibisag:queryRegObjResponse xsi:schemaLocation=.........>
<regObj id="id:obj:a1b2c3d4" objType="type:obj:abc0000">
<rim:Slot name="Author" xmlns:rim=.......>
<rim:ValueList>
<rim:Value>MyName</rim:Value>
</rim:ValueList>
</rim:Slot>
...
...
<rim:Slot name="email" xmlns:rim=".......>
<rim:ValueList>
<rim:Value>a@b.com</rim:Value>
</rim:ValueList>
</rim:Slot>
</registryObject>
</ibisag:queryRegistryRegObjResponse>
</soapenv:Body>
</soapenv:Envelope>

My goal is to extract the contents of the tag email ... I did some testing with an xml file with "simple" tag (without namespace, etc.) and it works, unfortunately I can not with this structure .. would you help me please?
thank you so much
Nic
Community Manager

Re: How to extract string between tags from an XML file

Hi
You can extract the value of a element or an attribute, for example, you can extract the value
MyName
a@b.com
from the element rim:Value, rather than the whole content under the element <soapenv:Body>.
Can you please email me an exmaple of your soap response and let me know what data would you like to extract?
Shong
----------------------------------------------------------
Talend | Data Agility for Modern Business
One Star

Re: How to extract string between tags from an XML file

Hi
You can extract the value of a element or an attribute, for example, you can extract the value
MyName
a@b.com
from the element rim:Value, rather than the whole content under the element <soapenv:Body>.
Can you please email me an exmaple of your soap response and let me know what data would you like to extract?
Shong

Email sent...
thanks
One Star

Re: How to extract string between tags from an XML file

Hi Shong,
did you get my email?
One Star

Re: How to extract string between tags from an XML file

Hi shong,
I want to remind you, when you can, to read my email.
Thanks for your interest.
Nic

What’s New for Talend Spring ’19

Watch the recorded webinar!

Watch Now

Definitive Guide to Data Quality

Create systems and workflow to manage clean data ingestion and data transformation.

Download

Tutorial

Introduction to Talend Open Studio for Data Integration.

Watch

Downloads and Trials

Test drive Talend's enterprise products.

Downloads