Bonjour,
J'essaye de récupérer un noeud de mon XML en utilisant la technique du Xpath. Pour cela je suis obligé d'utiliser l'objet XmlNamespaceManager mais cela ne fonctionne toujours pas.
Mon 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 <?xml version="1.0" encoding="utf-8"?> <Books xmlns="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3schools.com XMLFile.xsd"> <book ISBN="10-861003-324"> <title>C# Profesional</title> <releaseYear>2005</releaseYear> <publication>Microsoft Press</publication> </book> <book ISBN="10-942573-573"> <title>C# CookBook</title> <releaseYear>2006</releaseYear> <publication>O'reilly</publication> </book> <book ISBN="10-346279-828"> <title>SQL Server Black Book</title> <releaseYear>2005</releaseYear> <publication>Eyrolles</publication> </book> </Books>
Et voici mon code pour retrouver un livre ayant un titre spécifié :
J'utilise aussi un XmlSchema mais je pense pas que le problème provient du schema.
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 xmlDoc.Load(xmlPath); //Create an XmlNamespaceManager for resolving namespaces. XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable); foreach (XmlAttribute nsAttr in xmlDoc.DocumentElement.Attributes) if (nsAttr.Prefix == "xmlns") nsmgr.AddNamespace(nsAttr.LocalName, nsAttr.Value); string xPath = "/Books/book[title='" + OldTitle + "']"; XmlNode bookStore = xmlDoc.DocumentElement; XmlNode SearchedBook = bookStore.SelectSingleNode(xPath, nsmgr );
Merci pour votre aide![]()
Partager