Support Questions

Find answers, ask questions, and share your expertise
Announcements
Celebrating as our community reaches 100,000 members! Thank you!

Nifi:how to add tag in xml response

avatar
Contributor

I want to add xml tag ${filename} to xml response which i got from service how should i do it i mean i have made replace, end even delet operations in replaceText processor but how can i add something?

  1. Should i use Replace Text processor i should do it with groovy code?(p.s i should add this tag inside details tag) here is my xml content:
<?xml version="1.0" encoding="UTF-8"?>
<service>

  <Person>
  <details>
  <start>2017-10-22</start>
  <id>*******</id>
  <makeVersion>1</makeVersion>
  <patch>patch</patch>
  <parameter>1</parameter>
  </details>
  </Person>
</service>
1 ACCEPTED SOLUTION

avatar
Master Guru
@sally sally

yeah, you can do that by using replace text processor with

search value property as

<details>\s*([\s\S]+.*)\n+\s+<\/details> //capture every thing enclosed in details tag as capture group 1 

then in replacement value

<details>
${filename}
$1
</details> 

you can customize the replacement value as per your needs.

Replace Text processor Configs:-

43564-replace.png

input:-

<?xml version="1.0" encoding="UTF-8"?>
<service>
  <Person>
  <details>
  <start>2017-10-22</start>
  <id>*******</id>
  <makeVersion>1</makeVersion>
  <patch>patch</patch>
  <parameter>1</parameter>
  </details>
  </Person>
</service> 

output:-

<?xml version="1.0" encoding="UTF-8"?>
<service>
  <Person>
  <details>
1497701925152409
<start>2017-10-22</start>
  <id>*******</id>
  <makeVersion>1</makeVersion>
  <patch>patch</patch>
  <parameter>1</parameter>
</details>
  </Person>
</service

View solution in original post

1 REPLY 1

avatar
Master Guru
@sally sally

yeah, you can do that by using replace text processor with

search value property as

<details>\s*([\s\S]+.*)\n+\s+<\/details> //capture every thing enclosed in details tag as capture group 1 

then in replacement value

<details>
${filename}
$1
</details> 

you can customize the replacement value as per your needs.

Replace Text processor Configs:-

43564-replace.png

input:-

<?xml version="1.0" encoding="UTF-8"?>
<service>
  <Person>
  <details>
  <start>2017-10-22</start>
  <id>*******</id>
  <makeVersion>1</makeVersion>
  <patch>patch</patch>
  <parameter>1</parameter>
  </details>
  </Person>
</service> 

output:-

<?xml version="1.0" encoding="UTF-8"?>
<service>
  <Person>
  <details>
1497701925152409
<start>2017-10-22</start>
  <id>*******</id>
  <makeVersion>1</makeVersion>
  <patch>patch</patch>
  <parameter>1</parameter>
</details>
  </Person>
</service