powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вопрос по импорту данных из XML
2 сообщений из 2, страница 1 из 1
Вопрос по импорту данных из XML
    #38124693
Здравствуйте!
Для одного класса я написал метод экспорта данных в XML и соответственного импорта данных.
ClassMethod Export(FileName As %String) As %Status
{
  open FileName:"WNS"
  use FileName
  write "<!DOCTYPE Persons [", !
  do ##class(Test.Person).XMLDTD()
  write "]>", !
  write "<Persons>", !
  set rs = ##class(%ResultSet).%New("Test.Person:Extent")
  set rc = rs.Execute()
  while rs.Next() {
    set id = rs.GetData(1)
    set p = ##class(Test.Person).%OpenId(id)
    do p.XMLExport()
    write !
  }
    write "</Persons>", !
    close FileName
    quit $$$OK
}

ClassMethod Import(FileName As %String) As %Status
{
   set reader = ##class(%XML.Reader).%New()
   do reader.OpenFile(FileName)
   do reader.Correlate("Persons","Test.Person")
   set p=""
   while (reader.Next(.p))
   {
     do p.%Save()
     write "Данные про лицо ",p.Name," прочитаны",!
   }
   do reader.Close()
   quit $$$OK
}
При экспорте XML-файл создается, а вот при вызове метода импорта данные из XML-файла не считываются. Не могли бы вы подсказать, что не так? Заранее спасибо.
...
Рейтинг: 0 / 0
Вопрос по импорту данных из XML
    #38130156
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Горбань Глеб ,

Почему бы не использовать документированный способ экспорта данных в XML, учитывая, что The methods in %XML.Adaptor are deprecated and are mostly not documented.

Ваш пример примет вид:ClassMethod Export(FileName As %String) As %Status
{
  Set writer=##class(%XML.Writer).%New()
  Set writer.Indent=1
  Do writer.OutputToFile(FileName)
  Do writer.RootElement("Persons")

  Set rset = ##class(%ResultSet).%New("Test.Person:Extent")
  Do rset.Execute()

  While (rset.Next()) {
    Do writer.Object(##class(Test.Person).%OpenId(rset.Data("ID")))
  }
      
  Do writer.EndRootElement()
  Do writer.EndDocument()
}
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вопрос по импорту данных из XML
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]