Bonjour,

j'ai un web service en C# qui prend en paramètre une string :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
[WebMethod]
public bool testInsertion(String s) 
{
  XmlDocument doc = new XmlDocument();
  doc.LoadXml(s);
 
  try 
  {
     string titre = doc.SelectSingleNode
("my:insererContenu/my:titre").InnerText;
//...
Voici un exemple de données qui sont envoyées au web service :

<my:insererContenu xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2005-08-25T08-37-41">
<my:titre>titre test</my:titre>
...
</my:insererContenu>
Comme vous pouvez le voir, la définition du namespace "my" est contenue dans l'élément racine.

Toutefois, le web service plante et quand je débugge avec un espion sur l'expression doc.SelectSingleNode("my:insererContenu/my:titre") il m'indique cette erreur :

{"Le gestionnaire d'espaces de noms ou XsltContext est requis. Cette requête a un préfixe, une variable ou une fonction définie par l'utilisateur."} System.SystemException
Si j'ai bien compris, ça voudrait dire que la méthode LoadXML() ne détecte pas la définition du namespace, et que malheureusement on ne peut pas travailler avec des éléments XML préfixés par "my:" par la suite.

Quelqu'un aurait-il une solution pour contourner cela (même en passant par une autre méthode que LoadXML) ?
Je précise que la forme de la requête SOAP ne peut pas changer, impossible d'enlever les préfixes "my:"...

Merci d'avance