Hinzufügen von Knoten und Elementen in xml mit C#/Linq
Habe ich eine xml Datei wie diese,
<?xml version="1.0" encoding="utf-8" ?>
<root>
<FeaturedProductCategories>
<FeaturedProductCategory>
<FeaturedProducts>
<FeaturedProduct>
<ContentSelector datavalue_idtype="content:smartform" datavalue_displayvalue="«Smart Form:49»">49</ContentSelector>
</FeaturedProduct>
</FeaturedProducts>
</FeaturedProductCategory>
</FeaturedProductCategories>
</root>
Ich möchte es ändern, wie unter,
<?xml version="1.0" encoding="utf-8" ?>
<root>
<Title>HomePage</Title>
<FeaturedProductCategories>
<FeaturedProductCategory>
<FeaturedProducts>
<FeaturedProduct>
<Products>
<Product>
<ProductTitle>Product</ProductTitle>
<ProductDate>03-08-2012 11:57:25</ProductDate>
<ProductImage>
<img src="ex1.jpg" />
</ProductImage>
<ProductThumbnailImage>
<img src="ex2.jpg" />
</ProductThumbnailImage>
<ProductCaption>Product Caption</ProductCaption>
<ProductImage>
<img src="ex3.jpg" />
</ProductImage>
<ProductThumbnailImage>
<img src="ex4.jpg" />
</ProductThumbnailImage>
<ProductCaption>Product Caption</ProductCaption>
</Product>
</Products>
</FeaturedProduct>
</FeaturedProducts>
</FeaturedProductCategory>
</FeaturedProductCategories>
</root>
Alle neuen Knoten und Werte ergänzt werden durch eine C# - Funktion. Lassen Sie uns annehmen, diese neuen Werte als statische Werte für jetzt.
Auch der Knoten "FeaturedProduct" ist nicht nur eine. Es gibt eine Menge von Knoten, die in diesem Namen. Ich möchte zum ändern der "FeaturedProduct" Knoten.
- Cool. Also, was ist Ihre Frage?
- Ich will den xml-Code ändern, wie gezeigt. Könnten Sie bitte empfehlen Sie mir, wie es zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese nicht verwenden linq genau, aber Sie dienen Ihrem Zweck
Auch, Diese Dokumentation ist ein sehr praktisches Nachschlagewerk für den Xpath -
xNode.RemoveChild(xNode.SelectSingleNode("ContentSelector"));
xNode.InnerText = "myInnerText";
<FeaturedProduct>
erstellen Sie einfach ein weiteres neues element, und rufen SienewElement.AppendChild(newerElemeent)
Sollten Sie einen Blick auf die
XDocument
Klasse hier:http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx
Musste ich etwas tun, sehr ähnlich wie diese vor ein paar Wochen; XDocument ist eher bereit, Daten zu manipulieren, und die Verwendung von LINQ mit es ist unglaublich einfach.
XmlNode appNode = xml.SelectSingleNode("//FeaturedProductCategories/FeaturedProductCategory/FeaturedProducts/FeaturedProduct") XmlElement appTag = xml.CreateElement("Products"); XmlElement newApp = xml.CreateElement("Product"); newApp.SetAttribute("name", "value"); appNode.AppendChild(appTag); appTag.AppendChild(newApp);
Hier erfahren Sie, wie Sie mit Linq: