0

I've a list of error in a XML file and I'm looking for a solution to get informations for one error. My file Looks like this.

<?xml version="1.0" encoding="utf-8"?>
<List>
  <ListingCodeErreur>
    <Erreur ID="1100" ><Definition classe="0" Plage="Général" Text="Parameters    inside"/></Erreur>
    <Erreur ID="1101" ><Definition classe="1" Plage="Général" Text="Parameters outside"/></Erreur>
    <Erreur ID="1102" ><Definition classe="2" Plage="Général" Text="Unknow parameters"/></Erreur>
  </ListingCodeErreur>
  <ClasseErreur>
    <Classe ID="0" ><Definition Text="Avertissement" Couleur='#145A14'/>/Classe>
    <Classe ID="1" ><Definition Text="Stop" Couleur='#145A14'/></Classe>
  </ClasseErreur>
</List>

I've made a class

public class ListErreur
{
    public string ID { get; set; }
    public Definition definition;
}

public class Definition
{
    [XmlAttribute("Classe")]
    public int Classe { get; set; }

    [XmlAttribute("Plage")]
    public int Plage { get; set; }

    [XmlAttribute("Texte")]
    public int Texte { get; set; }
}

but I don't know how to create a function that receive the number in parameters and send informations back

Thanks you for your helps

Stanislas
  • 1,893
  • 1
  • 11
  • 26
ffb.boy.30
  • 39
  • 4
  • Have you tried `XmlSerializer`? See [How to Deserialize XML document](https://stackoverflow.com/q/364253/3744182). – dbc Mar 03 '18 at 20:37

1 Answers1

0

You can just re-use objects (XmlDocument, XmlElement), rather the making new POCOs for everything

    public Form1()
            {
                        InitializeComponent();

                        XmlElement ndError = this.getError( "1101" );
                        string strDetails = "Error: " + ndError.GetAttribute( "classe");
                        strDetails += "\r\n" + ndError.GetAttribute( "Plage" );
                        strDetails += "\r\n" + ndError.GetAttribute( "Text" );
                }

                public XmlElement getError( string strError ) {
                        XmlDocument xml = new XmlDocument();
                        xml.LoadXml(@"
<List>
<ListingCodeErreur>
<Erreur ID='1100' ><Definition classe='0' Plage='Général' Text='Parameters    inside'/></Erreur>
<Erreur ID='1101' ><Definition classe='1' Plage='Général' Text='Parameters outside'/></Erreur>
<Erreur ID='1102' ><Definition classe='2' Plage='Général' Text='Unknow parameters'/></Erreur>
</ListingCodeErreur>

<ClasseErreur>
<Classe ID='0' ><Definition Text='Avertissement' Couleur='#145A14'/></Classe>
<Classe ID='1' ><Definition Text='Stop' Couleur='#145A14'/></Classe>
</ClasseErreur>
</List>
                        ");

                        XmlElement ndReturn = (XmlElement)xml.SelectSingleNode( "//Erreur[@ID='" + strError + "']/Definition");
                        return ndReturn;
                }
William Walseth
  • 2,803
  • 1
  • 23
  • 25