Написание XML с помощью VB 6.0

Мне нужно записать журнал ошибок в XML-файл с помощью Visual Basic 6.0. Есть простой способ сделать это?

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

Спасибо, Джефф

Спасибо за решения. Думаю, я просто сделаю простую строку для хранения в файле. Просто потому, что мне не нужно беспокоиться о большом журнале ошибок. Каждая ошибка будет записана в отдельный XML-файл, который позже будет сохранен в БД и удален. Спасибо за помощь. -Джефф (первый пользователь)

Jeff 13.01.2009 17:14

Джефф отмечает, что создатель вопроса, ответа или комментария добавляется SO на отображение, нет необходимости подписывать их самостоятельно.

AnthonyWJones 13.01.2009 17:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
1 320
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вероятно, для этого лучше всего использовать библиотеки Microsoft MSXML.

В базе знаний есть образец: http://support.microsoft.com/kb/286817

Ответ принят как подходящий

Если вы пишете только файл журнала, я бы рекомендовал просто объединить такую ​​строку:

Public Function GetXmlEntry(errNumber as Long, description as String) as String
  GetXmlEntry = "<entry><error-number>" & errNumber & "</error-number><description>" & description & "</description></entry>"
End Function

Здесь нет необходимости в использовании библиотек XML, и это даже приведет к ненужному снижению производительности (т.е. без преимущества).

(редактировать) Как было указано в комментариях, написание правильного XML требует как минимум двух дополнительных шагов даже для одной единственной записи: во-первых, нужно правильно экранировать некоторые специальные символы (это не должно быть так сложно); во-вторых, необходимо использовать правильную (= одинаковую) кодировку для всего XML-файла в соответствии с объявлением в заголовке (для этого моего VB-Fu недостаточно - поможет небольшое копание в ссылке).

Очень хороший совет - избежать накладных расходов на создание анализатора XML только для создания простого XML-документа!

Jim Blizard 13.01.2009 16:53

@gimpf: настройка функции для правильной кодировки описания

AnthonyWJones 13.01.2009 17:05

«Вау, спасибо за быстрый ответ». Искренние извинения перед Binary Worrier и всем сообществом.

Jeff 13.01.2009 17:07

правильно сформированный xml также имеет корневой узел, поэтому закрывающий тег для корневого узла должен быть перезаписан, а затем добавлен каждый раз, когда вы добавляете запись.

Joel Coehoorn 13.01.2009 18:03

Я бы не рекомендовал такой способ. Сначала это может показаться проще, но XML-документ легко сломать, например, когда "описание" содержит недопустимый символ, такой как '<'

Dirk Vollmar 13.01.2009 18:15

(Продолжение :) И, как говорит Джоэл, сложнее поддерживать правильную форму. Вот почему файлы журналов XML, как правило, плохая идея (добавление дорого)

Dirk Vollmar 13.01.2009 18:16

Да, идея использовать XML для ведения журнала спорна. Я бы никогда не написал закрывающий тег для самого XML-файла - тем не менее, в случае сбоя программы это не может быть гарантировано, поэтому читатель должен позаботиться об этом.

gimpf 13.01.2009 18:56

Действительный XML также должен быть Unicode, что будет сложно. Я также согласен с тем, что вы не должны использовать XML для ведения журнала.

MarkJ 13.01.2009 21:07

К сожалению, требуется XML. Однако файл журнала XML является временным хранилищем, обеспечивающим попадание информации в базу данных. Каждая ошибка будет иметь свой собственный XML-файл и будет удалена после регистрации ошибки в БД.

Jeff 14.01.2009 00:12

Библиотеки Microsoft MSXML - это ваш первый порт обращения, но есть вещи, которые вам нужно учесть, прежде чем вы решите их использовать.

Добавление сообщений об ошибках в XML с помощью библиотеки MSML будет анализировать и загружать файл Xml каждый раз, когда вы его открываете. По мере роста файла Xml вы обнаружите, что ваше приложение замедляется до сканирования.

Было бы хорошо, если бы вы могли «просто» добавить свою ошибку в конец файла, однако из-за закрывающих тегов это непросто, но это можно сделать.

Если у вас есть контроль над созданием файла Xml, вы можете обойти эту проблему производительности, разделив файл Xml на два: один с заголовком, а другой - с телом XML. Затем вы можете добавить его в конец основного файла (используя класс записи Xml или просто добавив текст в файл).

См. Эффективные методы изменения больших файлов XML для получения дополнительной информации.

Однако все это излишне, если вы записываете одну ошибку в XML-файл, а следующая ошибка переходит в другой XML-файл. В этом случае используйте MSXML

Надеюсь это поможет.

Другие вопросы по теме