FAQ XMLRADConsultez toutes les FAQ

Nombre d'auteurs : 4, nombre de questions : 55, dernière mise à jour : 26 octobre 2006 

 
OuvrirSommaireFramework XMLCLXXMLCursor

La méthode XMLCursor.Select(XPath) sélectionne un noeud fils du XMLCursor courrant et retourne une nouvelle référence (un nouvel XMLCursor) sur ce noeud.

Si le noeud n'existe pas, la propriété EOF de XMLCursor est égal à True.

Soit le document XML OutputDoc suivant:

 
Sélectionnez

<document>
  <PARAMS>
    <Message>Helloworld !</Message>
  </PARAMS>
</document>

Nous avons le code suivant:

Delphi
Sélectionnez

var
  Cursor: IXMLCursor;
  Child1, Child2, Child3: IXMLCursor;
begin
  Cursor := OutputDoc.Select('/document'); // Cursor.EOF = False, /document XPath existe dans le XMLCursor OutputDoc.
  Child1 := Cursor.Select('PARAMS'); // Child.EOF = False, PARAMS est un fils de l'élément document, donc Select() retourne une nouvelle référence sur ce noeud existant.
  Child2 := Cursor.Select('PARAMS/Message'); // Child.EOF = False, PARAMS/Message est un XPath existant, donc Select() retourne une nouvelle référence sur ce noeud existant.
  Child3 := Cursor.Select('PARAMS/FakeNode'); // Child3.EOF = True. FakeNode n'existe pas.
end;
JScript
Sélectionnez

{
  Cursor = OutputDoc.Select("/document"); // Cursor.EOF() = False, /document XPath existe dans le XMLCursor OutputDoc.
  Child1 = Cursor.Select("PARAMS"); // Child.EOF() = False, PARAMS est un fils de l'élément document, donc Select() retourne une nouvelle référence sur ce noeud existant.
  Child2 = Cursor.Select("PARAMS/Message"); // Child.EOF() = False, PARAMS/Message est un XPath existant, donc Select() retourne une nouvelle référence sur ce noeud existant.
  Child3 = Cursor.Select("PARAMS/FakeNode"); // Child3.EOF() = True. FakeNode n'existe pas.
}
C#
Sélectionnez

{
  IXMLCursor Cursor = OutputDoc.Select("/document"); // Cursor.EOF() = False, /document XPath existe dans le XMLCursor OutputDoc.
  IXMLCursor Child1 = Cursor.Select("PARAMS"); // Child.EOF() = False, PARAMS est un fils de l'élément document, donc Select() retourne une nouvelle référence sur ce noeud existant.
  IXMLCursor Child2 = Cursor.Select("PARAMS/Message"); // Child.EOF() = False, PARAMS/Message est un XPath existant, donc Select() retourne une nouvelle référence sur ce noeud existant.
  IXMLCursor Child3 = Cursor.Select("PARAMS/FakeNode"); // Child3.EOF() = True. FakeNode n'existe pas.
}
Java
Sélectionnez

{
  XMLCursor Cursor = OutputDoc.select("/document"); // Cursor.EOF() = False, /document XPath existe dans le XMLCursor OutputDoc.
  XMLCursor Child1 = Cursor.select("PARAMS"); // Child.EOF() = False, PARAMS est un fils de l'élément document, donc Select() retourne une nouvelle référence sur ce noeud existant.
  XMLCursor Child2 = Cursor.select("PARAMS/Message"); // Child.EOF() = False, PARAMS/Message est un XPath existant, donc Select() retourne une nouvelle référence sur ce noeud existant.
  XMLCursor Child3 = Cursor.select("PARAMS/FakeNode"); // Child3.EOF() = True. FakeNode n'existe pas.
}

Autre morceau de code:

Delphi
Sélectionnez

var
  Params: IXMLCursor;
begin
  Params := OutputDoc.Select('/document/PARAMS'); // Essaye de récupérer une référence sur le noeud PARAMS
  if Params.EOF then // Si le noeud PARAMS n'est pas trouvé
    Params := OutputDoc.AppendChild('PARAMS', ''); // alors nous l'ajoutons en utilisant la méthode AppendChild
  Params.SetValue('Message', 'Helloworld !'); // Enfin, nous pouvons travailler sur le XMLCursor Params pour mettre de nouvelles valeurs 
end;
JScript
Sélectionnez

{
  Params = OutputDoc.Select("/document/PARAMS"); // Essaye de récupérer une référence sur le noeud PARAMS
  if (Params.EOF()) // Si le noeud PARAMS n'est pas trouvé
    Params = OutputDoc.AppendChild("PARAMS", ""); // alors nous l'ajoutons en utilisant la méthode AppendChild
  Params.SetValue("Message", "Helloworld !"); // Enfin, nous pouvons travailler sur le XMLCursor Params pour mettre de nouvelles valeurs 
}
C#
Sélectionnez

{
  IXMLCursor Params = OutputDoc.Select("/document/PARAMS"); // Essaye de récupérer une référence sur le noeud PARAMS
  if (Params.EOF()) // Si le noeud PARAMS n'est pas trouvé
    Params = OutputDoc.AppendChild("PARAMS", ""); // alors nous l'ajoutons en utilisant la méthode AppendChild
  Params.SetValue("Message", "Helloworld !"); // Enfin, nous pouvons travailler sur le XMLCursor Params pour mettre de nouvelles valeurs 
}
Java
Sélectionnez

{
  XMLCursor Params = OutputDoc.select("/document/PARAMS"); // Essaye de récupérer une référence sur le noeud PARAMS
  if (Params.eof()) // Si le noeud PARAMS n'est pas trouvé
    Params = OutputDoc.appendChild("PARAMS", ""); // alors nous l'ajoutons en utilisant la méthode AppendChild
  Params.setValue("Message", "Helloworld !"); // Enfin, nous pouvons travailler sur le XMLCursor Params pour mettre de nouvelles valeurs 
}
Créé le 16 septembre 2004  par RDM

Si vous créez une nouveau document XML en utilisant XMLCursor, vous pouvez utilisez la méthode XMLCursor.LoadXML pour fournir un squelette du document XML au parser.

Delphi
Sélectionnez

    var
      XMLCursor: IXMLCursor;
    begin
      XMLCursor := XMLCollection.CreateXMLCursor;
      XMLCursor.LoadXML('<?xml version="1.0" encoding="ISO-8859-15"?>'#13#10'<document />');
      // ...
      XMLCursor.Save(FileName); 
    end;
JScript
Sélectionnez

    {
      XMLCursor = XMLCollection.CreateXMLCursor();
      XMLCursor.LoadXML("<?xml version="1.0" encoding="ISO-8859-15"?>\\\\n<document />");
      // ...
      XMLCursor.Save(FileName); 
    }
C#
Sélectionnez

    {
      IXMLCursor XMLCursor;
      XMLCursor = XMLCollection.CreateXMLCursor();
      XMLCursor.LoadXML("<?xml version="1.0" encoding="ISO-8859-15"?>\\\\n<document />");
      // ...
      XMLCursor.Save(FileName); 
    }
Java
Sélectionnez

    {
      XMLCursor XMLCursor;
      XMLCursor = xmlCollection.createXMLCursor();
      XMLCursor.loadXML("<?xml version="1.0" encoding="ISO-8859-15"?>\\\\n<document />");
      // ...
      XMLCursor.save(FileName); 
    }

Si vous travaillez avec un fichier existant, chargez-le en tant que String avec ReadFileToString et remplacez l'encoding courrant en utilisant TranslateStrToStr.

Delphi
Sélectionnez

    var
      FileContent: WideString;
    begin
      ReadStringFromFile(FilePath, FileContent);
      TranslateStrToStr(FileContent, 'UTF-8', 'ISO-8859-15');
      WriteStringToFile(FileContent, FilePath);
    end;
Créé le 24 septembre 2004  par RDM
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005 Developpez. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.