Permalänk
Medlem

Xdocument problem c#

Fastnat vid ett litet problem.

Ska lägga in data dynamiskt i en xml fil. Jag har en lista med produkter. Varje produkt är en egen lista av en "dynamisk klass".

Upplägget ska se ut såhär:
<root>
<products>
<product>
<dynamiskt>Dynamisk data</dynamsikt>
<dynamiskt>Dynamisk data</dynamsikt>
<dynamiskt>Dynamisk data</dynamsikt>
</product>
<products>
</root>

Kommit så här långt:
XDocument xDoc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("Products"));

foreach (var product in products)
{
new XElement("Product");
var prod = product.NodeList;

foreach (var propertyNode in prod)
{
var a = propertyNode;
new XElement(propertyNode.filterName, propertyNode.value);
}

}

Det funkar så pass långt att datan blir rätt. Fast den hamnar inte i xDoc då jag stänger det innan första foreach.

Ett annat alternativ fast där jag har problem att loopa igenom min xlist.
XDocument xdoc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("Products",
from xlist in products
select new XElement("Product",

new XElement(xlist.NodeList.ForEach(x => x.dataType), xlist.NodeList.ForEach(y => y.value)),
new XElement("Phone", "2"),
new XElement("Street", "3"),
new XElement("Zipcode", "xlist"))
)
);

Någon som kan bidra med något tips?

Permalänk
Medlem

man kan exempelvis göra på följande sätt:

var productsNode = new XElement("products"); for (int i = 0; i < 5; ++i) { var productNode = new XElement("product"); for (int j = 0; j < 5; ++j) { productNode.Add(new XElement("property" + j, "value" + j)); } productsNode.Add(productNode); } var xDoc = new XDocument( new XDeclaration("1.0", "utf-8", "yes"), new XElement("root", productsNode) );

Visa signatur

as far as we can tell, the massacre went well...

Permalänk
Medlem

Blev så här:

var productsNode = new XElement("Producs"); foreach (var product in products) { var x = product.NodeList; var productNode = new XElement("Product"); foreach (var propertyNode in x) { productNode.Add(new XElement(propertyNode.filterName, propertyNode.value)); } productsNode.Add(productNode); } var xDoc = new XDocument( new XDeclaration("1.0", "utf-8", "yes"), //new XElement(rooten), new XElement(productsNode) );

Permalänk
Medlem

Finns det någon form av lista man kan spara sina element i istället för I ett element?
Visar en bit av min kod. Problemet jag får är att min productsNode blir product

Sen så får jag ett till element som heter product för varje product, och det vill jag ha.
blir:
<product />
<product>
<bla>gd</bla>
<pro1>gdsgds</pro!>
</product>

Nu måste jag skapa min productsNode pga att stoppa in mina produkter i den ( productsNode.Add(productNode) );
Vill kunna stoppa in den i något som inte blir ett element, men jag vill ändeså kunna adda dess innehåll till min xml.

var productsNode = new XElement(s); foreach (var product in products) { var x = product.NodeList; var productNode = new XElement(s); foreach (var propertyNode in x) { productNode.Add(new XElement(propertyNode.filterName, propertyNode.value)); } productsNode.Add(productNode); } rooten.Add(productsNode);