Bonjour,

je sollicite votre aide, c est à propos d'un fichier XML, enfaite j'extrais des données d'un fichier XML, qui est composer de plusieurs appels téléphonique.

Je voudrais une fois traiter les informations d'un poste (100 par exemple ,celui-ci est contenue dans une variable tiré d'une textBox), supprimer les lignes correspondant a l'appel.

Voici comment est composer mon fichier XML:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="UTF-8"?>
<CallAccountingList>
...
	<CallAccounting xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="CAPTicket_V001.001.xsd">*
		<OmniPCXOffice>
			<SoftwareVersion>3EH30369BVAA ALZQO510/023.004</SoftwareVersion>
			<CPUIPAddress>192.168.92.246</CPUIPAddress>
		</OmniPCXOffice>
		<Checksum>550119011</Checksum>
		<TicketType>Call</TicketType>
		<ChargedUserType>A</ChargedUserType>
		<ChargedUserID>100</ChargedUserID>
		<SubscriberName>PO</SubscriberName>
		<CommunicationType>Outgoing</CommunicationType>
		<TrunkType>N</TrunkType>
		<TrunkID>001</TrunkID>
		<Date>2007-06-15</Date>
		<Time>13:37:00</Time>
		<CallDuration>00:00:25</CallDuration>
		<TaxesAmount>0</TaxesAmount>
		<Service>ST</Service>
		<DialledNumber>0156412361</DialledNumber>
		<DialledMode>M</DialledMode>
		<RingingDuration>00:00:00</RingingDuration>
		<Cost>0,77</Cost>
		<Currency>EUR</Currency>
	</CallAccounting>
...
</CallAccountingList>

CallAccounting=> Balise pour un appel

CallAccounting=> Balise pour tout les appel



Je traite les informations de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 XDocument xDoc = XDocument.Load("C:\\Projet\\TicketCollector.XML");// Chargement du fichier .xml
   IEnumerable<XElement> elements = xDoc.Elements("CallAccountingList").Elements("CallAccounting").Where(el => el.Element("ChargedUserID").Value == chargedUserID && el.Element("CommunicationType").Value == "Outgoing"); // Recherche des éléments pour lesquels : 'ChargedUserID = NumPoste' et 'CommunicationType = Outgoing'
   using (StreamWriter sw = new StreamWriter("C:\\Projet\\Facture_detail.txt", true)) //Ouverture en écriture du fichier ,si non existant creation du fichier FicheClient.
   {
    foreach (XElement el in elements)// Boucle sur les éléments retenus
    {
 
     lineMessage = String.Format("Date {0}, Heure {1}, Duree {2}, Numero.Appelle {3}, Prix {4}", el.Element("Date").Value, el.Element("Time").Value, el.Element("CallDuration").Value, el.Element("DialledNumber").Value, el.Element("Cost").Value);
     sw.WriteLine(lineMessage);
     counter++;//Compte le nombre de communication
     Prix = String.Format("{0}", el.Element("Cost").Value);
     Double.TryParse(Prix, out Cost);
     TotalCost += Cost;
    }
   }
   compteur = Convert.ToString(counter);
Cordialement , Jérémy