Hi All,
I have an issue where I cannot figure out how to only get the first element where there are more with the same name. I need to get the customer Order number, Email, First and Lastname and product ordered.
The XML file has one or more and I only need the first item the rest needs to be ignored for that order number.
With my script I get 5 items in my list, Order Number, Mail, First and Last Name, but I get 8 items in productOrdered.
Now I need to get the first for that is this possible?
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Linq;
using System.Xml.Serialization;
using UnityEngine;
using Xml2CSharp;
public class PreOrderManager : MonoBehaviour
{
public TextAsset xml;
public List<int> orderNumber = new List<int>();
public List<string> mailAddress = new List<string>();
public List<string> customerFirstName = new List<string>();
public List<string> customerLastName = new List<string>();
public List<string> productOrdered = new List<string>();
void Start()
{
var xd = XDocument.Load(@"C:\tmp\Data2.xml");
// Order Numbers
var orderNumbers = xd.Root
.Elements("order")
.Elements("orderno")
.Select(x => x.Value);
foreach (var x in orderNumbers)
{
orderNumber.Add(int.Parse(x));
}
// Email Adresses
var email = xd.Root
.Elements("order")
.Elements("mailaddress")
.Select(y => y.Value);
foreach (var y in email)
{
mailAddress.Add(y);
}
// First Name
var customerNameOne = xd.Root
.Elements("order")
.Elements("firstname")
.Select(z => z.Value);
foreach (var z in customerNameOne)
{
customerFirstName.Add(z);
}
// Last Name
var customerNameTwo = xd.Root
.Elements("order")
.Elements("name")
.Select(n => n.Value);
foreach (var n in customerNameTwo)
{
customerLastName.Add(n);
}
// Ordered Products
var customerItems = xd.Root
.Elements("order")
.Elements("rowprodname")
.Select(p => p.Value);
foreach (var p in customerItems)
{
//if (p.Contains("Preorder"))
productOrdered.Add(p);
}
}
}
<orders>
<order>
<orderno><![CDATA[2020001]]></orderno>
<firstname><![CDATA[Roy]]></firstname>
<name><![CDATA[Jansen]]></name>
<mailaddress><![CDATA[roy@jansen.commm]]></mailaddress>
<orderrow>
<rowprodname><![CDATA[PreOrder 1x Product One]]></rowprodname>
</orderrow>
</order>
<order>
<orderno><![CDATA[2020002]]></orderno>
<firstname><![CDATA[Dennis]]></firstname>
<name><![CDATA[Hope]]></name>
<mailaddress><![CDATA[dennis@gmail.com]]></mailaddress>
<orderrow>
<rowprodname><![CDATA[PreOrder 1x Product Two]]></rowprodname>
</orderrow>
<orderrow>
<rowprodname><![CDATA[Do Not Get this value! Two]]></rowprodname>
</orderrow>
</order>
<order>
<orderno><![CDATA[2020003]]></orderno>
<firstname><![CDATA[Jeroen]]></firstname>
<name><![CDATA[Vliet]]></name>
<mailaddress><![CDATA[jeroen@gmail.commm]]></mailaddress>
<orderrow>
<rowprodname><![CDATA[PreOrder 1x Product Three]]></rowprodname>
</orderrow>
<orderrow>
<rowprodname><![CDATA[Do Not Get this value! Three]]></rowprodname>
</orderrow>
</order>
<order>
<orderno><![CDATA[2020004]]></orderno>
<firstname><![CDATA[Ilse]]></firstname>
<name><![CDATA[Vis]]></name>
<mailaddress><![CDATA[ilse@gmail.commm]]></mailaddress>
<orderrow>
<rowprodname><![CDATA[PreOrder 1x Product Four]]></rowprodname>
</orderrow>
</order>
<order>
<orderno><![CDATA[2020005]]></orderno>
<firstname><![CDATA[Eef]]></firstname>
<name><![CDATA[Reef]]></name>
<mailaddress><![CDATA[eef@gmail.commm]]></mailaddress>
<orderrow>
<rowprodname><![CDATA[PreOrder 1x Product Five]]></rowprodname>
</orderrow>
<orderrow>
<rowprodname><![CDATA[Do Not Get this value! Five]]></rowprodname>
</orderrow>
</order>
</orders>