ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

XML редактирование.
  #1  
Старый 06.10.2009, 16:00
Аватар для BlincAttack
BlincAttack
Banned
Регистрация: 29.09.2009
Сообщений: 37
Провел на форуме:
371493

Репутация: 97
Отправить сообщение для BlincAttack с помощью ICQ
По умолчанию XML редактирование.

В общем имеется код:
Код:
using System;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;

class programm
{
    [DllImport("ChilkatDotNet2.dll")]
    public static extern bool LoadXmlFile(string fileName);

    [DllImport("kernel32.dll")]

    public static extern bool SetConsoleTextAttribute(IntPtr hConsoleOutput,
    int wAttributes);

    [DllImport("kernel32.dll")]

    public static extern IntPtr GetStdHandle(uint nStdHandle);

    public static void Main(string[] args)
    {
        uint STD_OUTPUT_HANDLE = 0xfffffff5;
        IntPtr hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(hConsole, 12);
        Console.WriteLine("Здравствуйте, вас приветствует бот \"Болтун\".");
    retry:
    onlyname:
        SetConsoleTextAttribute(hConsole, 12);
        Console.Write("Для начала общения введите своё имя: ");
        SetConsoleTextAttribute(hConsole, 15);
        string myname = Console.ReadLine();
        myname = myname.Trim();
    botname:
        SetConsoleTextAttribute(hConsole, 12);
        Console.Write("Теперь введите имя бота с которым хотите общаться: ");
        SetConsoleTextAttribute(hConsole, 15);
        string botname = Console.ReadLine();
        botname = botname.Trim();
        if (myname == "")
        {
            Console.WriteLine("\nSystem: Вы должны обязательно ввести ваше имя!\n");
            goto retry;
        }
        if (botname == "")
        {
            Console.WriteLine("\nSystem: Вы должны обязательно ввести имя бота!\n");
            goto botname;
        }
        if (botname == myname)
        {
            Console.WriteLine("\nSystem: Ваш ник и имя бота не должно совпадать!\n");
            goto onlyname;
        }
        SetConsoleTextAttribute(hConsole, 15);
        Console.WriteLine("\nSystem: Отлично!Можете начинать общаться!");
        Console.WriteLine("System: Чтобы выйти с программы напишите \"!exit\".");
    ask:
        SetConsoleTextAttribute(hConsole, 10);
        Console.Write("\n{0}: ", myname);
        SetConsoleTextAttribute(hConsole, 7);
        string quest = Console.ReadLine();
        string answer = "";
        Chilkat.Xml obj = new Chilkat.Xml();
        obj.LoadXmlFile("bases.xml");
        if (quest == "!exit")
        {
            SetConsoleTextAttribute(hConsole, 15);
            Console.WriteLine("\nSystem: Спасибо за использование нашей программы!");
            Console.WriteLine("System: Нажмите любую клавишу...");
            goto exit;
        }
        
            for (int i = 0; i < obj.NumChildren; i++)
            {
                Chilkat.Xml xmlField = obj.GetChild(i);
                Chilkat.Xml q = xmlField.GetChildWithTag("question");

                for (int j = 0; j < q.NumChildren; j++)
                {
                    Regex rx = new Regex(q.GetChildContentByIndex(j), RegexOptions.IgnoreCase);
                    if (rx.IsMatch(quest))
                    {
                        Chilkat.Xml a = xmlField.GetChildWithTag("answer");
                        Random r = new Random();
                        int k = r.Next(0, a.NumChildren);
                        answer = a.GetChildContentByIndex(k);
                        goto name;
                    }
                }
            }
        name:
            if (answer.Length > 0)
            {
                SetConsoleTextAttribute(hConsole, 14);
                Console.Write("\n{0}: ", botname);
                SetConsoleTextAttribute(hConsole, 7);
                Console.Write("{0}\n", answer); 
            }
            goto ask;
            return;
        exit:
            Console.ReadKey();
        }
    }
Имеется парсер: _http://www.example-code.com/csharp/xml.asp

И имеется xml файл такого формата:
Код:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<base>
<0>
 <question>
	<1>Hello</1>
 </question>
 <answer>
	<0>Превед!</0>
 </answer>
</0>
</base>
Не подскажите как можно сделать редактирование xml напрямую из программы.Например строками "Введите вопрос" и "Введите ответ".
За ранее благодарен!
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распространение MS Word на территории США запрещено из-за нарушения патента на XML tux Мировые новости 6 12.08.2009 22:10
Пишем Jabber-клиент на Delphi lytgeygen Статьи 5 07.06.2009 01:45
XML - Новостная лента Lionis PHP, PERL, MySQL, JavaScript 10 22.12.2008 21:18
Подборка сайтов по CSS, XML технологиям и Web2.0 решениям Trinux Избранное 8 06.12.2006 17:05
W3c выпустил обновлённые спецификации стандарта Xml TTN_ Мировые новости 0 21.08.2006 21:28



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ