Hi I want to copy an xml file and insert in a specific element locaiton some more elements;
What is the best and easiest way doing this. I can use xmlReader read elements and write one by one referring to each and every type- I had some issues with this but besides this seems to me too mush work that can be done somehow better.
in the example below I have the xml as a default definition need to create a new xml in same format with inserting new values to sheet1 – but after existing rows, and do the same for sheet2.
<book>
<Sheet ss:name="Sheet1">
<Table >
<Row >
<Cell/>
<Cell>
Title Name
</Cell>
<Cell >
Title Description
</Cell>
</Row>
</Sheet>
<a/>
<b/>
<Sheet ss:name="Sheet2">
<Table >
<Row >
<Cell/>
<Cell>
Title Name
</Cell>
<Cell >
Title Description
</Cell>
</Row>
</Sheet>
</book>
The simplest way in my view would be to load the whole document using LINQ to XML, modify it, then save it out again. That’s likely to be easier than using
XmlReader, which can get somewhat hairy in my experience.However, that does involve loading it all into memory – which could be an issue if the documents are huge. Is that likely to be a problem?
EDIT: Here’s a short example in LINQ to XML (untested):
An alternative to the last part, if you just want the new content after all the old content of the sheet: