Си диез / Говнокод #3894 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
public void GeneratXMLForChatServerControl()
        {
            List<ClassUsersList> List = GetUsersList();
            System.IO.StreamWriter TextW = new System.IO.StreamWriter("Update_Settings.xml", false,System.Text.Encoding.GetEncoding("UTF-8"));
            
            TextW.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
            TextW.WriteLine("<General>");
            foreach (ClassUsersList User in List)
            {
                User.Information = User.Information.Replace("<", "");
                User.Information = User.Information.Replace(">", "");
                User.Information = User.Information.Replace("&", "");
                TextW.WriteLine("<Name>" + User.Information + "</Name>");
                TextW.WriteLine("<Login>" + User.UIN + "</Login>");
                TextW.WriteLine("<Password>" + User.Pwd + "</Password>");
                TextW.WriteLine("<LocalPath>D:\\chat2\\" + User.UID + "\\</LocalPath>");
                TextW.WriteLine("<UID>" + User.UID + "</UID>");
                TextW.WriteLine("<UIN>" + User.UIN + "</UIN>");
                TextW.WriteLine("<Lock>0</Lock>");
                TextW.WriteLine("");
            }
            TextW.WriteLine("</General>");
            TextW.Flush();
            TextW.Close();         
        }

Крутобл, создаём XML налету

Запостил: Nigma143 Nigma143, (Updated )

Комментарии (14) RSS

  • интересно, неужели автор и читает ХМЛ прямым разбором строк одна-за-другой?
    Ответить
  • User.Information = User.Information.Replace("<", "");
    Защита от поломки структуры XML хDDD
    Ответить
  • Автору еще учиться и учиться.
    При желании можно создать нужные структуру с нужной иерархией и использовать стандартную функцию serialize
    Ответить
    • Да по сути взгляни на структуру XML она сама посути кривая
      >>TextW.WriteLine("");
      Правильнее было бы каждую учётку в отдельную обёртку брать типа
      <record>
      .............
      </record>
      Ответить
  • У меня много знакомых, которые говорят что LINQ от лукавого, и пишут такое.....
    Ответить
    • А зачем сразу Linq 2 xml ? можно же многими способами воспользоваться:
      XmlDocument,
      XmlWriter,
      XmlSerializer,
      XamlWritter...
      Ответить
      • Можно. Просто LinqToXML позволяет создать файл указанного вида одной командой.
        Ответить
  • XElement body =
    new XElement("items",
    new XElement("General",
    new XElement("key", new XAttribute("name", Common.XmlKeys.IS_SUCCESS), isSucess),
    new XElement("key", new XAttribute("name", Common.XmlKeys.OPERATION_NUMBER), operationNumber),
    new XElement("key", new XAttribute("name", "from"), own.AppKey)),
    new XElement("Result", resultMessage)
    );

    body.ToString();

    Вот как-то так удобно
    Ответить
  • ohshi~, только заметил хадркод с путями
    <LocalPath>D:\\chat2\\" + User.UID + "\\</LocalPath>
    Ответить
    • Все юзаем path.combine, а работать с путями в строке, грубая ошибка
      Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8