Replace function not working for xpath

From: Nasruddin NA <nasruddin(dot)java(at)gmail(dot)com>
To: pgsql-in-general(at)postgresql(dot)org
Subject: Replace function not working for xpath
Date: 2013-11-14 15:28:25
Message-ID: CAMsH2L2rZ1fQzqrYm_kQEdWGMMxvAJHvsqyXXW6URz+bonQRmw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-in-general

Hi All,

Below query is updating properly :-
Update km_course_mast set xmlgrading = (replace
(xmlgrading :: text,
'<Grading_Automated><PassOrFail>Fail</PassOrFail><ActivityScorebased><AutomatedSequence
Value="0"/><Percentage>25</Percentage><Value>34</Value><AutomatedSequence
Value="1"/><Percentage>99</Percentage><Value>432</Value><AutomatedSequence
Value="2"/><Percentage>43</Percentage><Value>232</Value><AutomatedSequence
Value="3"/><Percentage>43</Percentage><Value>323</Value><AutomatedSequence
Value="4"/><Percentage>33</Percentage><Value>432</Value><AutomatedSequence
Value="5"/><Percentage>45</Percentage><Value>3432</Value></ActivityScorebased></Grading_Automated>',
'<Grading_Automated><PassOrFail>Pass</PassOrFail><ActivityScorebased><AutomatedSequence
Value="0"/><Percentage>25</Percentage><Value>34</Value><AutomatedSequence
Value="1"/><Percentage>99</Percentage><Value>432</Value><AutomatedSequence
Value="2"/><Percentage>43</Percentage><Value>232</Value><AutomatedSequence
Value="3"/><Percentage>43</Percentage><Value>323</Value><AutomatedSequence
Value="4"/><Percentage>33</Percentage><Value>432</Value><AutomatedSequence
Value="5"/><Percentage>45</Percentage><Value>3432</Value></ActivityScorebased></Grading_Automated>')
:: xml) where id = 107

Below query is not updating properly :-
Update km_course_mast set xmlgrading = (replace
(xmlgrading :: text,
regexp_replace ((xpath('//Grading_Automated',xmlgrading))[1]::text,
'[\s\n\r]*', '',
'g'),'<Grading_Automated><PassOrFail>Pass</PassOrFail><ActivityScorebased><AutomatedSequence
Value="0"/><Percentage>25</Percentage><Value>34</Value><AutomatedSequence
Value="1"/><Percentage>99</Percentage><Value>432</Value><AutomatedSequence
Value="2"/><Percentage>43</Percentage><Value>232</Value><AutomatedSequence
Value="3"/><Percentage>43</Percentage><Value>323</Value><AutomatedSequence
Value="4"/><Percentage>33</Percentage><Value>432</Value><AutomatedSequence
Value="5"/><Percentage>45</Percentage><Value>3432</Value></ActivityScorebased></Grading_Automated>')
:: xml) where id = 107

Where xmlgrading column consist of below value : -
<Grading><Value_For_Activity>ValueForAC</Value_For_Activity><Value_For_Progression>ValueForProgression</Value_For_Progression><Grading_Manual><PassorFail>PassFailM</PassorFail><Point>Pointtext</Point><Percentage>Percentagetext</Percentage><LetterBased><Sequence
value="0"/><Letter>Lettertext</Letter><From>1</From><To>2</To><Sequence
value="1"/><Letter>Lettertext</Letter><From>3</From><To>4</To><Sequence
value="2"/><Letter>Lettertext</Letter><From>5</From><To>6</To><Sequence
value="3"/><Letter>Lettertext</Letter><From>7</From><To>8</To><Sequence
value="4"/><Letter>Lettertext</Letter><From>9</From><To>10</To></LetterBased><Rubic><Upload>Uploadtext</Upload><url>urltext</url><Enter>Entertext</Enter></Rubic></Grading_Manual><Grading_Automated><PassOrFail>Pass/Fail</PassOrFail><ActivityScorebased><AutomatedSequence
Value="0"/><Percentage>12</Percentage><Value>32</Value><AutomatedSequence
Value="1"/><Percentage>23</Percentage><Value>432</Value><AutomatedSequence
Value="2"/><Percentage>43</Percentage><Value>232</Value><AutomatedSequence
Value="3"/><Percentage>43</Percentage><Value>323</Value><AutomatedSequence
Value="4"/><Percentage>33</Percentage><Value>432</Value><AutomatedSequence
Value="5"/><Percentage>45</Percentage><Value>3432</Value></ActivityScorebased></Grading_Automated></Grading>

regexp_replace ((xpath('//Grading_Automated',xmlgrading))[1]::text,
'[\s\n\r]*', '', 'g') Query returns following output:-

"<Grading_Automated><PassOrFail>Fail</PassOrFail><ActivityScorebased><AutomatedSequence
Value="0"/><Percentage>25</Percentage><Value>34</Value><AutomatedSequence
Value="1"/><Percentage>99</Percentage><Value>432</Value><AutomatedSequence
Value="2"/><Percentage>43</Percentage><Value>232</Value><AutomatedSequence
Value="3"/><Percentage>43</Percentage><Value>323</Value><AutomatedSequence
Value="4"/><Percentage>33</Percentage><Value>432</Value><AutomatedSequence
Value="5"/><Percentage>45</Percentage><Value>3432</Value></ActivityScorebased></Grading_Automated>"

Please Suggest why it is not updating.

Thanks and regards,
Nasruddin

Browse pgsql-in-general by date

  From Date Subject
Next Message Joseph Kregloh 2013-12-19 16:02:38 pg_upgrade & tablespaces
Previous Message Radovan Jablonovsky 2013-11-13 16:54:24 Re: Using Xpath, Output value is not displaying in Single Line