c# - LINQ to XML Replace Value Issue -


i having issue when trying replace value of xelement. not sure doing wrong. simplified xml follows

<payload>   <field name="slug_locator">     <value>orig value</value>   </field> </payload> 

here query

ienumerable<xelement> fields =                     el in doc.descendants("field")                     el.attribute("name").value == "slug_locator"                     select el;  foreach (xelement el in fields)             {                 e.value = "new value";             } 

if check el in each statement says value = orig value. assumed change , expect see this

 <payload>       <field name="slug_locator">         <value>new value</value>       </field>     </payload> 

but , dont know why

 <payload>     <field name="slug_locator">new value</field> </payload> 

any appreciated!

currently, you're selecting <field> element instead of <value> element. that's why entire content of <field> changed new value. can modify select part of linq slightest change fix problem :

ienumerable<xelement> values =                     el in doc.descendants("field")                     el.attribute("name").value == "slug_locator"                     select el.element("value"); 

or if need remain selecting <field>s, change for loop content :

foreach (xelement el in fields) {     el.element("value").value = "new value"; } 

Comments

Popular posts from this blog

java - Could not locate OpenAL library -

c++ - Delete matches in OpenCV (Keypoints and descriptors) -

sorting - opencl Bitonic sort with 64 bits keys -