On-line: Pasha, PSP, гостей 0. Всего: 2 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 134
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 25.03.11 13:34. Заголовок: Экспорт данных в XML


Предыдущая прога уже готова и отлично работает. Но шефу надо выводить данные в универсальный формат обмена данными XML, причём с несколькими уровнями иерархии. Как заставить Harbour работать с форматом XML? Моя среда: BCC55+harbour+MiniGUI Extended

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 15 [только новые]


Администратор




Пост N: 1860
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 25.03.11 13:53. Заголовок: Я использую класс из..


Я использую класс из hwgui
Этот же класс есть в поставке minigui: source\hbxml

В harbour есть библиотечка contrib\hbmxml
В xHarbour есть класс TXmlDocument, он же есть и в Harbour

Выбирай - не хочу

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 135
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 25.03.11 14:08. Заголовок: Спасибо большое! Но..


Спасибо большое!

Но где бы документацию взять?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1861
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 25.03.11 14:23. Заголовок: Документации как так..


Документации как таковой по этим классам нет
Но классы несложные, примеры их использования имеются, и этого вполне достаточно для их освоения

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 144
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 27.03.11 11:46. Заголовок: Я использую уже давн..


Я использую уже давно - посмотрите фрагмент моего кода, может поможет
"...
oXmlDoc := TXmlDocument():New('<?xml version="1.0" encoding="windows-1251" ?>')

oXmlRoot := TXmlNode():new(0,"DECLAR",{ "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance", ;
"xsi:noNamespaceSchemaLocation" => aTBL[nT]+".xsd" }

oXmlDoc:oRoot:addBelow( oXmlRoot )

oXmlHead := TXmlNode():new(0, "DECLARHEAD" )
oXmlRoot:addBelow( oXmlHead )
oXmlHead:addBelow( TXmlNode():new(0, "VER",,"1.1") )
..."

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1722
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.03.11 16:56. Заголовок: krutoff пишет: посм..


krutoff пишет:

 цитата:
посмотрите фрагмент моего кода, может поможет



Ничего не понятно. Дайте хоть первоначальную информацию....
Зачем как и почему. А лучше тестовый пример маленький, выгрузка базы например.
Заранее спасибо !

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 9
Зарегистрирован: 08.02.11
ссылка на сообщение  Отправлено: 29.03.11 01:52. Заголовок: я в былые времена на..


я в былые времена начала XML делал файлы для налоговой как обычный текстовый файл с последовательным созданием тэгов

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2063
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.03.11 06:43. Заголовок: Andrey пишет: Дайте..


Andrey пишет:

 цитата:
Дайте хоть первоначальную информацию....


http://www.rsdn.ru/article/xml/xml-1.xml

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1723
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.03.11 21:22. Заголовок: Dima пишет: http://..


Dima пишет:

 цитата:
http://www.rsdn.ru/article/xml/xml-1.xml


Спасибо !

А дальше ? По примеру ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 12
Зарегистрирован: 03.09.09
ссылка на сообщение  Отправлено: 31.03.11 16:16. Заголовок: Не знаю или актуальн..


Не знаю или актуально, но еще как вариант через DOMDocument.
Типа так (заполнение данными шаблона XML) :

xmlDoc := CreateObject( "Msxml2.DOMDocument.6.0" )
xmlDoc:async := FALSE
xmlDoc:load("Test.xml" )
xmlErr := xmlDoc:parseError
IF xmlErr:errorCode <> 0
MsgExclamation( "Ошибка, код: " + AllTrim( Str( xmlErr:errorCode ) ) )
RETURN .f.
ENDIF

objNodeList := xmlDoc:getElementsByTagName("Tag1" )
objNodeList:item( 0 ):text = "Значение для Tag1"
....
....
// создать элемент
newElem := xmlDoc:createElement( "SECPARAM" )
objNodeList1:appendChild( newElem )
objNodeList1:lastChild:text = "Значение"

....
xmlDoc:async := FALSE
xmlDoc:validateOnParse := TRUE
xmlDoc:save( "fileOut" )



Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 67
Зарегистрирован: 05.11.05
ссылка на сообщение  Отправлено: 27.05.11 14:09. Заголовок: А загрузить базу так..


А загрузить базу так можно? Могу я с помощью xHarbour взять из интернета файл и прочитать из него данные в программу?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 341
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: Вчера 15:38. Заголовок: krutoff пишет: Я и..


krutoff пишет:

 цитата:

Я использую уже давно - посмотрите фрагмент моего кода, может поможет
"...
oXmlDoc := TXmlDocument():New('<?xml version="1.0" encoding="windows-1251" ?>')

oXmlRoot := TXmlNode():new(0,"DECLAR",{ "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance", ;
"xsi:noNamespaceSchemaLocation" => aTBL[nT]+".xsd" }

oXmlDoc:oRoot:addBelow( oXmlRoot )

oXmlHead := TXmlNode():new(0, "DECLARHEAD" )
oXmlRoot:addBelow( oXmlHead )
oXmlHead:addBelow( TXmlNode():new(0, "VER",,"1.1") )
..."



Это хорошо, но как это сделать в ДОСявом Клиппере? Как только сейчас выяснилось, шефу нужен уже даже не PDF, а электронный документ особого формата. Пока что удалось выяснить, что это XML. Такая вот хрень, примерно.
Скрытый текст


ubl - Universal Business Language, частный случай XML. Просто выпечатывать в текстовый файл из-под DOSa -- будут проблемы с ESC. Времени на нормальную портировку на Винду и Harbour у меня нет -- шеф хочет, чтобы я сделал всё до конца июня. А прога там огромная -- на 2,5 мега одних исходников. Портировка займет в лучшем случае год.

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 1611
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: Вчера 15:42. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Просто выпечатывать в текстовый файл из-под DOSa -- будут проблемы с ESC


Какие проблемы с ESC?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4573
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: Вчера 16:50. Заголовок: Dr. Oldwarez пишет н..


Dr. Oldwarez пишет
 цитата:
но как это сделать в ДОСявом Клиппере?


Как всегда в clipper, делаете txt файл[ы] структуры документов xml со всеми тэгами, в них выражения для данных. Читаете построчно и выделяете выражение в тэге, выполняете его, результат на выход в тэг.
Например вариант Скрытый текст

Секцию строк документа <Invoice-Lines>...</Invoice-Lines>, выделена цветом читаете в цикле на документостроки своих документов. Строки с "^-" в тэгах могут быть выкинуты вместе с тэгами или делаться пустыми по вашей ситуации, например
<CodeByBuyer>^-</CodeByBuyer> на выход может давать
<CodeByBuyer></CodeByBuyer> или не давать тэг на выход целиком.
NR_2, ..., OH_2, ..., OP_1, ..., LN_16, LN_11, ..., OS_4, OS_6 ... - это поля dbf

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 4173
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: Вчера 18:56. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Это хорошо, но как это сделать в ДОСявом Клиппере?



Но вот зачем эти мучения ? Не проще ли пересобрать клиппер-программу под терминальное 32-х битное приложение Харбор, которое прекрасно будет работать под winxp и старше ? И сразу же откроется целый новый мир, в том числе работа с xml, и много чего еще ? И ads там поддерживается

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 342
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: Вчера 21:48. Заголовок: Pasha пишет: Но вот..


Pasha пишет:

 цитата:
Но вот зачем эти мучения ? Не проще ли пересобрать клиппер-программу под терминальное 32-х битное приложение Харбор, которое прекрасно будет работать под winxp и старше ? И сразу же откроется целый новый мир, в том числе работа с xml, и много чего еще ? И ads там поддерживается



Если прога большая, то на начальном этапе, можно собрать и отдельные модули на Харборе, которые решают локальные задачи и вызывать их из основной

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 56
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет