Esempio n. 1
0
        public static DataTable GetCategorias(string filename)
        {
            DataTable oDataTable = null;

            string[] columnNameList = new string[6] {
                "NomeDeRegime", "NomeDeDescricao", "NomeDeRegiao", "NomeDeGrupos", "NomeDeServiços", "LinkDeServiços"
            };
            oDataTable        = new DataTable();
            oDataTable.Locale = CultureInfo.InvariantCulture;
            foreach (string columnName in columnNameList)
            {
                oDataTable.Columns.Add(columnName, typeof(string));
            }
            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(filename);
            XmlNodeList ListaDeRegimes = null;

            ListaDeRegimes = xmlDoc.SelectNodes("//ListaDeRegimes");
            //if (ListaDeRegimes != null)
            foreach (XmlNode Regime in ListaDeRegimes)
            {
                string      NomeDeRegime    = "";
                string      NomeDeDescricao = "";
                string      NomeDeRegiao    = "";
                string      NomeDeGrupos    = "";
                string      NomeDeServiços  = "";
                string      LinkDeServiços  = "";
                XmlNodeList RegimeList      = Regime.SelectNodes("//Regime");
                foreach (XmlNode RegimeNode in RegimeList)
                {
                    NomeDeRegime = RegimeNode.SelectSingleNode("nome").FirstChild.Value;
                    if (RegimeNode.SelectSingleNode("descricao") != null)
                    {
                        NomeDeDescricao = RegimeNode.SelectSingleNode("descricao").FirstChild.Value;
                    }
                    //Listar lista do nome de regiao
                    string[] valueList = valueList = new string[6] {
                        NomeDeRegime, NomeDeDescricao, "", "", "", ""
                    };
                    oDataTable.Rows.Add(valueList);
                    foreach (XmlNode childnodes in RegimeNode.ChildNodes)
                    {
                        if (childnodes.Name == "região")
                        {
                            if (childnodes.Attributes["nome"].Value != null)
                            {
                                NomeDeRegiao = childnodes.Attributes["nome"].Value;
                            }
                            else
                            {
                                NomeDeRegiao = "";
                            }
                            valueList = new string[6] {
                                "", "", NomeDeRegiao, "", "", ""
                            };
                            oDataTable.Rows.Add(valueList);
                            foreach (XmlNode NodeGrupos in childnodes)
                            {
                                if (NodeGrupos.Attributes["nome"] == null)
                                {
                                    NomeDeGrupos = "";
                                }
                                else if (NodeGrupos.Attributes["nome"].Value != null)
                                {
                                    NomeDeGrupos = NodeGrupos.Attributes["nome"].Value;
                                }
                                else
                                {
                                    NomeDeGrupos = "";
                                }
                                valueList = new string[6] {
                                    "", "", "", NomeDeGrupos, "", ""
                                };
                                oDataTable.Rows.Add(valueList);
                                foreach (XmlNode NodeServiços in NodeGrupos)
                                {
                                    if (NodeServiços.SelectSingleNode("nome") != null)
                                    {
                                        NomeDeServiços = NodeServiços.SelectSingleNode("nome").FirstChild.Value;
                                        if (NodeServiços.SelectSingleNode("link") != null)
                                        {
                                            LinkDeServiços = NodeServiços.SelectSingleNode("link").FirstChild.Value;
                                        }
                                        else
                                        {
                                            LinkDeServiços = "";
                                        }
                                    }
                                    else
                                    {
                                        NomeDeServiços = "";
                                    }
                                    valueList = new string[6] {
                                        "", "", "", "", NomeDeServiços, LinkDeServiços
                                    };
                                    oDataTable.Rows.Add(valueList);
                                }
                            }
                        }
                    }
                }
            }
            return(oDataTable);
        }