Forum Discussion
Is this your actual response?
String response = " <blub>\r\nBlaaaah asd\r\n<Blä /> asd asdsad \r\n asdasd asdasd</blub>"
Or is should look like this?
String response = " <blub>\r\nBlaaaah asd\r\n<Blä/>asdasdsad \r\n asdasdasdasd</blub>"
Please confirm on this.. And both replace() and replaceAll() method works.. Trying putting correct regular expressions. See below code.
String response = " <blub>\r\nBlaaaah asd\r\n<Blä /> asd asdsad \r\n asdasd asdasd</blub>" log.info("before trim: " + response) log.info("After replace1: " + response.trim()) log.info("After replace2: " + response.replaceAll("(\r\n)", ""))
This is how output look like :-
- Mon Feb 19 22:19:57 IST 2018:INFO:before trim: Blaaaah asd <Blä /> asd asdsad asdasd asdasd
- Mon Feb 19 22:19:57 IST 2018:INFO:After replace1: Blaaaah asd <Blä /> asd asdsad asdasd asdasd
- Mon Feb 19 22:19:57 IST 2018:INFO:After replace2: Blaaaah asd<Blä /> asd asdsad asdasd asdasd
With replace() method:-
String response = " <blub>\r\nBlaaaah asd\r\n<Blä /> asd asdsad \r\n asdasd asdasd</blub>" log.info("before trim: " + response) log.info("After replace1: " + response.trim()) log.info("After replace2: " + response.replace("(\r\n)", ""))
Output:-
- Mon Feb 19 22:26:21 IST 2018:INFO:before trim: Blaaaah asd <Blä /> asd asdsad asdasd asdasd
- Mon Feb 19 22:26:21 IST 2018:INFO:After replace1: Blaaaah asd <Blä /> asd asdsad asdasd asdasd
- Mon Feb 19 22:26:21 IST 2018:INFO:After replace2: Blaaaah asd <Blä /> asd asdsad asdasd asdasd
And trim() in the sense you mean to remove the white spaces inside the String :-
Like this:- <blub>Blaaaahasd<Blä/>asdasdsadasdasdasdasd</blub> ..
To do this you need to use replaceAll() method like this:-
String response = " <blub>\r\nBlaaaah asd\r\n<Blä /> asd asdsad \r\n asdasd asdasd</blub>" log.info("After replace1: " + response.replaceAll("\\s+",""))
Output look like this:-
Mon Feb 19 22:33:48 IST 2018:INFO:After replace1: <blub>Blaaaahasd<Blä/>asdasdsadasdasdasdasd</blub>
Hope, it resolve your problem. :)
Hi ashutoshanshu,
thanks a lot, your syntax works. I realy don't know why I haven't found this solution, maybe it was to late for me yesterday... ;-)
Do you have also a clue, how to do this in a xpath or xqerry?
If I try this like this:
replace(/*,"\\s+","")
then my XML structure is away. (in a Property Transfer Step)
input: <node>test1<subnode>test2</subnode>test3</node> output: test1 test2 test3
best regards,
Shamane2000
You should know that replace() or replaceAll() method takes only 2 arguments within quotes like this :- replace("", "") This is not the correct way of using this method :- replace(/*,"\\s+", "") and by the way, what is your input String and what is your expected output?
- shamane20008 years agoOccasional Contributor
@ashutoshanshu wrote:...and by the way, what is your input String and what is your expected output?
I have a lot of properties, containing xml parts (with linebreaks) and I want to linearize them for using in a *.csv file.And save csv with aditionally linebreaks are ... :smileymad:
And because all of my tries with xpath and xqerry were unsucsessfully, I trieed it now with a grovy script.