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 :
Cordialement , Jérémy
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);
Partager