Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Я читать XML - Я плохо читать !


Автор: A5uKa 26.5.2010, 14:14
Хочу прочитать ну и переписать в дальнейшем две строки соединения .
ДВЕ СТРОКИ !
вот ..... 

вот так smile

вот попытка ... попытка ... вот она ... 

Код

                XmlTextReader reader = new XmlTextReader(Window1.cfg.FSAddress);
                bool[] startreading = {false , false};
                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                        case XmlNodeType.Element:    // Узел является элементом.
                            if (startreading[0])
                            {
                                if (reader.Name == "add")
                                    if (startreading[1])
                                    {
                                        id2.Text = reader.GetAttribute(1);
                                        return;
                                    }
                                    else
                                    {
                                        id1.Text = reader.GetAttribute(1);
                                        startreading[1] = true;
                                        startreading[0] = false;
                                    }
                            }
                            else
                            if (reader.Name == "connectionStrings")
                                startreading[0] = true;
                            break;
                        case XmlNodeType.EndElement:
                            if (startreading[1])
                                if (reader.Name == "add")
                                    startreading[0] = true;
                            break;
                    }
                }


читается только первая ... работает как-то странно, нагло и грубо ... 

Автор: A5uKa 26.5.2010, 15:42
ещё две тупые попытки

Код

                XPathDocument doc = new XPathDocument(Window1.cfg.FSAddress);
                XPathNavigator nav = doc.CreateNavigator();

                XPathExpression expr;
                expr = nav.Compile("/configuration/connectionStrings/add");
                XPathNodeIterator iterator = nav.Select(expr);

                // Iterate on the node set
                while (iterator.MoveNext())
                {
                    XPathNavigator nav2 = iterator.Current.Clone();
                    id1.Text = nav2.GetAttribute("DataSource","???");
                }


Код

                ConfigurationManager.OpenExeConfiguration(Window1.cfg.FSAddress);
                id1.Text = ConfigurationManager.ConnectionStrings[0].ConnectionString;
                id2.Text = ConfigurationManager.ConnectionStrings[1].ConnectionString;


Обе неправильные и не работают !

ну в первой я не знаю как обратиться к аттрибуту (пока не знаю) , а вторая как-то по своему мыслит. .. она думает у меня там одни коннекшн стринг, а их двааа !

Автор: mrbrooks 26.5.2010, 16:16
хм. если я тебя правильно понял и достаточно принял, то должно быть типа этого:
Код

        static void Main(string[] args)
        {
            string path = Environment.CurrentDirectory + @"\a5uka.xml";
            if (File.Exists(path))
            {
                    var xArr = XDocument.Load(path)
                                        .Element("configuration")
                                        .Elements("connectionStrings")
                                        .Elements();
                    foreach (XElement item in xArr)
                    {
                        Console.WriteLine("Данные по элементу");
                        foreach (XAttribute attr in item.Attributes())
                            Console.WriteLine("Имя: {0} Значение: {1}", attr.Name, attr.Value);
                    }
            }
            else Console.WriteLine("shit");
            Console.Read();
        }


т.е. я какбэ намекаю, что Linq2XML вещь кошерная.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)