2010-04-08 20 views
6

jest prosty sposób modyfikowania InnerXml XElement? supose mamy to niezwykle proste xmlJak zmodyfikować zawartość XElement?

<planets> 
    <earth></earth> 
    <mercurio></mercurio> 
</planets> 

i chcemy dołączyć niektóre XML, które pochodzą z innego źródła, które przychodzi jak struna „<continents><america/><europa/>.....blablabla” do węzła uziemienia.

czytałem podobnych pytań, ale mówią o pobieraniu innerxml o Xelement a ja nie rozumiem, jak „modyfikować” rzeczywistą Xelement :(

Odpowiedz

4

Budowanie XML

planetsElement.Element("earth").Add(
    new XElement("continents", 
     new XElement("america"), 
     new XElement("europa") 
    ) 
); 

analizowania i Dodaj

planetsElement.Element("earth").Add(
    XElement.Parse("<continents><america/><europa/></continents>") 
); 
+0

Źródło jest ciągiem, przypuszczalnie mamy ciąg z tysiącem węzłów, to podejście nie jest użyteczne. XmlElement ma właściwość innerXml i potrzebuje tylko przypisania. Mój docelowy cel, jeśli istnieje prosty sposób. – mjsr

+0

ouyea "Parse and Add" jest tym, czego potrzebuję, dzięki! – mjsr

+0

@voodoomsr - Nie zapomnij przyjąć odpowiedzi. – ChaosPandion

2

Zastosowanie XElement.ReplaceNodes() ustawić zawartość elemencie. Więc .. .

var doc = XDocument.Parse(xmlString); 
var earth = doc.Root.Element("earth"); 

// to replace the nodes use 
earth.ReplaceNodes(XElement.Parse("<continents><america/><europa/></continents>")); 

// to add the nodes 
earth.Add(XElement.Parse("<continents><america/><europa/></continents>"));