• Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта


Иллюстрированный самоучитель по Architecture .NET

Создание документа XML из объекта DataSet (Набор данных)

Используя объект DataSet (Набор данных) можно создать новый документ XML. Используя запрос XPath, можно перейти в начало документа, а затем, с помощью объекта XmlNodeReader прочитать весь документ. Мы выведем содержимое документа на экран. Класс XmlNodeReader обеспечивает перемещение по документу. Приведем фрагмент кода из примера DataSetXML:

XmlDataDocument *xmlDataDoc = new XmlDataDocument(d);
XmlNodeReader *xmlNodeReader = 0;
try
{
XmlNode *node = xmlDataDoc › SelectSingleNode("/");
XmlNodeReader = new XmlNodeReader (node);
FormatXml (XmlNodeReader); }
catch (Exception *e) // Исключение {
Console::WriteLine (
"Exception: {0}", e › ToString()); // Исключение
}
finally // наконец
r
if (XmlNodeReader!= 0) // если (XmlNodeReader! = 0)
xmlNodeReader › Close(); }
static void FormatXml (XmlReader *reader) {
while (reader › Read()) // читатель › Чтение () {
switch (reader › NodeType) // переключатель
//(читатель › NodeType) {
case XmlNodeType::Element: // случай
// XmlNodeType::Элемент Format (reader, "Element");
// Формат (читатель, "Элемент");
while(reader › MoveToNextAttribute())
Format (reader, "Attribute");
// Формат (читатель, "Атрибут"); break;
case XmlNodeType::Text: // случай XmlNodeType:: Текст Format (reader, "Text");
// Формат (читатель, "Текст"); break;
static String *lastNodeType = ""; // статическая Строка
static void Format(XmlReader *reader, String *nodeType) // Формат
{
if (nodeType › Equals("Element"))
// если (nodeType › Равняется ("Элемент"))
{
if (lastNodeType › Equals("Element"))
// если (lastNodeType › Равняется ("Элемент"))
{
Console::WriteLine();
}
for (int i=0; i < reader › Depth; i++)
{
Console::Write(" "); // Запись
}
Console::Write(reader › Name);
// Запись:: (читатель › Название); }
else if (nodeType › Equals("Text")) // если (nodeType › Равняется ("Текст"))
Console::WriteLine("={0}", reader › Value); // Значение else
{
Console::Write(String::Format(// Запись:: (Строка:: Формат ("{0}<{1}>{2}",
nodeType, reader › Name, // Название reader › Value));
// читатель › Значение Console::WriteLine (); }
lastNodeType = nodeType; }
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.