Bug 4211 - SetElementValue eliminates all other child elements
Summary: SetElementValue eliminates all other child elements
Status: RESOLVED FIXED
Alias: None
Product: Class Libraries
Classification: Mono
Component: System.XML ()
Version: 2.10.x
Hardware: PC Windows
: --- major
Target Milestone: Untriaged
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2012-04-03 17:05 UTC by kenneth.beasley
Modified: 2012-04-20 17:38 UTC (History)
4 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on GitHub or Developer Community with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED FIXED

Description kenneth.beasley 2012-04-03 17:05:35 UTC
Here is this bit of example code:

            var testElement = new XElement("testElement");
            testElement.SetElementValue("newElement1", 10);
            testElement.SetElementValue("newElement2", 12);

            LogDebugMessage(this, new MessageEventArgs(testElement.ToString()));


The result I get from here, is an XElement with one child element of the name "newElement2" with a value of 12.

However, the functionality that I get when running this code targeted on a windows platform is an XElement that contains both child elements.

It seems that when SetElementValue is called, it overwrites any child XElements.

Using Visual Studio 2010
Mono for Android 4.06
Targeted at Android 2.3

Thank you.
Comment 1 Jonathan Pobst 2012-04-17 11:48:58 UTC
Confirmed in Mono 2.10.8.

.NET 4.0 Output:
<testElement>
  <newElement1>10</newElement1>
  <newElement2>12</newElement2>
</testElement>

Mono 2.10.8 Output:
<testElement>
  <newElement2>12</newElement2>
</testElement>

When fixed, please port to mobile branch.
Comment 2 Duncan Mak 2012-04-20 17:38:07 UTC
This has been fixed. 

The patch is available in the following branch:


master:              170d0dda1c579d252b2013559682807ac12e3b46
mono-2-10:      606afdf3eda75c27b797d27350a0ca20f23e8829
mobile-master:  084c53d435b1dbc1f91ab22642416f428edbcc94