Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   XML редактирование. (https://forum.antichat.xyz/showthread.php?t=146169)

BlincAttack 06.10.2009 16:00

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 напрямую из программы.Например строками "Введите вопрос" и "Введите ответ".
За ранее благодарен!


Время: 06:25