Как прочитать файл формата XML в память в C #? - PullRequest
0 голосов
/ 19 марта 2010

// .net 2.0 и vs2005 используется.

Я нашел код ниже. Я не уверен, что могу расширить пример кода или нет? спасибо.

if (radioButton.Checked)
{
    MemoryStream ms=new MemoryStream();
    byte[] data=ASCIIEncoding.ASCII.GetBytes(textBox1.Text);
    ms.Write(data,0,data.Length);
    reader = new XmlTextReader(ms);
    //some procesing code
    ms.Close();
    reader.Close();
}

Кстати, не могли бы вы помочь мне разобраться в строке ниже.

byte[] data=ASCIIEncoding.ASCII.GetBytes(textBox1.Text);

Ответы [ 3 ]

4 голосов
/ 19 марта 2010
using (var reader = new StringReader(textBox1.Text))
using (var xmlReader = XmlReader.Create(reader))
{
    while (xmlReader.Read())
    {
        //some procesing code
    }
}

Относительно этой строки byte[] data=ASCIIEncoding.ASCII.GetBytes(textBox1.Text);:

объявляет переменную с именем data типа массив байтов и присваивает ее содержимому строки textBox1.Text, преобразованной в массив байтов с использованием кодировки ASCII.

1 голос
/ 19 марта 2010
Filestream fs = new Filestream(textBox1.Text);
XmlReader reader = XmlReader.Create(fs);

Из Документация XmlReader msdn .

1 голос
/ 19 марта 2010

Чтобы ответить на ваш второй вопрос:

byte[] data=ASCIIEncoding.ASCII.GetBytes(textBox1.Text);

Обычно текст хранится в виде последовательности символов, каждый из которых хранится в формате Unicode, который занимает несколько байтов на символ,Формат ASCII является более старым форматом, который использует один байт (фактически, первоначально 7 битов, а затем расширен для использования 8 битов) на символ.

ASCIIEncoding обеспечивает способ преобразования в или из этого старого формата.Приведенная выше строка кода преобразует текст в представление ASCII и возвращает «сырой» массив байтов, содержащий текст в этом формате.

Обратите внимание, что ASCII использует байт для каждого символа, поэтому может представлять только 256разные символы - Unicode может представлять тысячи символов, поэтому во время преобразования некоторые символы будут потеряны (преобразованы в более простую форму, где острый / cedilla / umlaut потерян, или заменены другим символом - например, «?»)

(Типичные преимущества этого заключаются в том, что может быть проще написать код для обработки более простого формата, или что он использует меньше памяти, поскольку он использует только один байт на символ, или что вам необходимо отправить данные «третьему»сторона ", которая требует, чтобы это было ASCII)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...