[C# XML]XmlNamespaceManager et Xpath
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:
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é :
Code:
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 ); |
J'utilise aussi un XmlSchema mais je pense pas que le problème provient du schema.
Merci pour votre aide :D