Bonjour,
y a t il moyen de faire une requete SQL sur un fichier XML ?
Genre "Update Table set Total = Sum(prix * Qt)" ?
Merci
Bonjour,
y a t il moyen de faire une requete SQL sur un fichier XML ?
Genre "Update Table set Total = Sum(prix * Qt)" ?
Merci
non
Les règles du forum
Le trio magique : FAQ + Cours + fonction rechercher
Mes articles
Pas de questions par messages privés svp
Software is never finished, only abandoned.
ok.
Alors comment peut-on mettre a jour une donnée précise ?
ex :
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 - <Doc> - <Factures> <QtTotal /> <Numero>1</Numero> - <Items> <Qt>3</Qt> </Items> - <Items> <Qt>2</Qt> </Items> </Factures> - <Factures> <QtTotal /> <Numero>2</Numero> - <Items> <Qt>1</Qt> </Items> - <Items> <Qt>2</Qt> </Items> </Factures> </Doc>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 XPathDocument XDoc = new XPathDocument("test.xml"); XPathNavigator Nav = XDoc.CreateNavigator(); XPathNodeIterator Factures = Nav.Select("/Doc/Factures"); Double Tot = 0; foreach (XPathNavigator Facture in Factures) { Tot = Convert.ToDouble(Facture.Evaluate("sum(Items/Qt)")); Facture.MoveToNamespace("QtTotal"); //Ici je voudrais mettre a jour QT total par facture }
ok.. trouvé.
Pour ceux qui cherche voila la solution
Xpath ne fait que lire l'xml tandis que XDocument peut ecrire, modifer.
VOila la solution a mon probl :
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 String CFile = "C:/test.xml"; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(CFile); XPathNavigator Nav = xmlDoc.CreateNavigator(); XPathNodeIterator Factures = Nav.Select("/Doc/Factures"); Double Tot = 0; foreach (XPathNavigator Facture in Factures) { Tot = Convert.ToDouble(Facture.Evaluate("sum(Items/Qt)")); Facture.MoveToChild("Total",""); Facture.SetValue(Tot.ToString()); } xmlDoc.Save(CFile);
Partager