On-line: PSP, tnsr2, гостей 0. Всего: 2 [подробнее..]
АвторСообщение



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 30.05.13 22:50. Заголовок: Как использовать hbxml.lib?


Здравствуйte,
Я хотел бы создать код, используя hbxml.lib, который будет генерировать XML файле структурирована следующим образом. Я не могу справиться с ней.
Не могли бы Вы мне помочь в написании этого кода.

 
<?xml version="1.0" encoding="iso-8859-2"? >
<Nadawca
Struktura="1.7"
Nazwa="Firma ABC"
NazwaSkrocona="ABC"
Miejscowosc="City"
Ulica="Klonowa"
Dom="10A"
Kod="46200"
>

<Zbior>
<Przesyłka>
<Atrybut Typ="" Nazwa="Symbol">180 </Atrybut>
<Atrybut Typ="" Nazwa="Wersja">1&# 60;/Atrybut>
<Atrybut Typ="" Nazwa="Wartosc">20 00</Atrybut>
<Atrybut Typ="" Nazwa="Uslugi">O&# 60;/Atrybut>

<Atrybut Typ="Adresat" Nazwa="Nazwa">Luka szewski Maciej</Atrybut>
<Atrybut Typ="Adresat" Nazwa="Rodzaj">N&# 60;/Atrybut>
<Atrybut Typ="Adresat" Nazwa="Ulica">Modr zewiowa</Atrybut>
<Atrybut Typ="Adresat" Nazwa="Dom">6A< ;/Atrybut>
<Atrybut Typ="Adresat" Nazwa="Dom">10< ;/Atrybut>
<Atrybut Typ="Adresat" Nazwa="Miejscowosc" 2;Lipkowo</Atrybut>
<Atrybut Typ="Adresat" Nazwa="Kod">99999& #60;/Atrybut>
</Przesyłka>

<Przesyłka>
<Atrybut Typ="" Nazwa="Symbol">180 </Atrybut>
<Atrybut Typ="" Nazwa="Wersja">1&# 60;/Atrybut>
<Atrybut Typ="" Nazwa="Wartosc">50 00</Atrybut>
<Atrybut Typ="" Nazwa="Uslugi">O&# 60;/Atrybut>

<Atrybut Typ="Adresat" Nazwa="Nazwa">Kowa lski JAn</Atrybut>
<Atrybut Typ="Adresat" Nazwa="Rodzaj">N&# 60;/Atrybut>
<Atrybut Typ="Adresat" Nazwa="Ulica">Sosn owa</Atrybut>
<Atrybut Typ="Adresat" Nazwa="Dom">55< ;/Atrybut>
<Atrybut Typ="Adresat" Nazwa="Dom">1< /Atrybut>
<Atrybut Typ="Adresat" Nazwa="Miejscowosc" 2;Debno</Atrybut>
<Atrybut Typ="Adresat" Nazwa="Kod">12345& #60;/Atrybut>
</Przesyłka>
......

......

<Przesyłka>
<Atrybut Typ="" Nazwa="Symbol">180 </Atrybut>
<Atrybut Typ="" Nazwa="Wersja">1&# 60;/Atrybut>
<Atrybut Typ="" Nazwa="Wartosc">50 00</Atrybut>
<Atrybut Typ="" Nazwa="Uslugi">O&# 60;/Atrybut>

<Atrybut Typ="Adresat" Nazwa="Nazwa">Nowa k Jan</Atrybut>
<Atrybut Typ="Adresat" Nazwa="Rodzaj">N&# 60;/Atrybut>
<Atrybut Typ="Adresat" Nazwa="Ulica">Dlug a</Atrybut>
<Atrybut Typ="Adresat" Nazwa="Dom">55< ;/Atrybut>
<Atrybut Typ="Adresat" Nazwa="Dom">1< /Atrybut>
<Atrybut Typ="Adresat" Nazwa="Miejscowosc" 2;Debno</Atrybut>
<Atrybut Typ="Adresat" Nazwa="Kod">12345& #60;/Atrybut>
</Przesyłka>
</Zbior>
</Nadawca>



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


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




Пост N: 3186
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 30.05.13 22:51. Заголовок: пипец а что я это вы..


пипец а что я это вытащил из премодерации....... ;)

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


Пост N: 648
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 31.05.13 08:35. Заголовок: Если речь идет об hb..


Если речь идет об hbxml.lib из HwGUI, то это может выглядеть примерно так ( формируемый xml немного сокращен ):

 цитата:

Function main
Local oDoc, oInit, oZbior, oPrzes, oAttr

oDoc := HXMLDoc():New( "iso-8859-2" )
oInit := HXMLNode():New( "Nadawca",,{ { "Struktura","1.7" }, { "Nazwa","Firma ABC" } } )
oDoc:Add( oInit )

oZbior := HXMLNode():New( "Zbior" )
oInit:Add( oZbior )

oPrzes := HXMLNode():New( "Przesylka" )
oZbior:Add( oPrzes )

oAttr := HXMLNode():New( "Atrybut",,{ {"Nazwa","Symbol"} } )
oAttr:Add( "180" )
oPrzes:Add( oAttr )

oAttr := HXMLNode():New( "Atrybut",,{ {"Nazwa","Wersja"} } )
oAttr:Add( "160" )
oPrzes:Add( oAttr )

oPrzes := HXMLNode():New( "Przesylka" )
oZbior:Add( oPrzes )

oAttr := HXMLNode():New( "Atrybut",,{ {"Nazwa","Symbol"} } )
oAttr:Add( "180" )
oPrzes:Add( oAttr )

oDoc:Save( "amy.xml" )

return nil




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




Пост N: 2891
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 31.05.13 08:45. Заголовок: Dima пишет: пипец а..


Dima пишет:

 цитата:
пипец а что я это вытащил из премодерации....... ;)



Товарищ по ошибке кликнул вместо кнопки "Новая тема" на "Новый опрос"

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




Пост N: 3187
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 31.05.13 10:04. Заголовок: Поправил 1 месагу...


Поправил 1 месагу.

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



Пост N: 2
Зарегистрирован: 01.06.13
ссылка на сообщение  Отправлено: 01.06.13 13:15. Заголовок: Спасибо, что я имел ..


Спасибо, что я имел в виду
приветствую
Tadeusz

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




Пост N: 2893
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 01.06.13 14:22. Заголовок: alkresin пишет: Есл..


alkresin пишет:

 цитата:
Если речь идет об hbxml.lib из HwGUI



Александр, проясните пожалуйста такой момент:

Сейчас в Вашей библиотеке выполняется замена символов, в частности:
' --> &apos;
" --> &qout;

Сдаем квартальную отчетность в ПФР. По правилам этого учреждения наименование организации должно быть на верхнем регистре, и не иметь символа ". Двойные кавычки рекомендуется заменять на одинарные.
Заменяю. Делаю результирующий xml. hbxml делает замену ' --> &apos; Программы проверки ПФР ругаются, обнаруживая символы на нижнем регистре, и не принимают отчет.
А теперь внимание вопрос (c) Насколько обязательным в xml является замена одинарных кавычек на &apos; ?
Или это недоработка ПФР ? Потому как ПФУ (такая же организация, только на Украине), распознает &apos; в xml.

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


Пост N: 650
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 02.06.13 14:51. Заголовок: Насколько я понимаю,..


Насколько я понимаю, эта замена обязательна в тех случаях, когда ее неприменение приводит к неоднозначности, в остальных случаях она допустима, но не необходима. В частности, в атрибутах тэга она обязательна - см., например, здесь.
В некоторых приложениях XML она обязательна везде, например, в для sitemap или в стандарте Яндекса.
В любом случае, такая замена не является нарушением, но ПФР закон не писан :)


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




Пост N: 2894
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 03.06.13 07:53. Заголовок: А можно ли в библиот..


А можно ли в библиотеку добавить возможность задавать список символов, которые требуют замены ?
По умолчанию пусть их будет 6, но этот список можно было бы изменить.
Я смотрю, софт, который готовит отчетность в формате xml в различные организации (сейчас это распространено), не выполняет подобных замен, а выгружает спецсимволы как они есть. И программы приема и проверки отчетности бывает их не воспринимают (пример - этот ПФР).

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


Пост N: 651
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 03.06.13 09:03. Заголовок: А можно ли в библиот..



 цитата:
А можно ли в библиотеку добавить возможность задавать список символов, которые требуют замены ?


Хорошая мысль. Так и сделаю.
С ПФР у меня этой проблемы не возникало, потому что я изначально делал отчеты для него без hbxml. Просто FCreate(), FWrite() ... Библиотеку я использую когда надо не только выводить что-то в xml, но и читать и анализировать его.

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




Пост N: 2895
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 03.06.13 09:19. Заголовок: А я как раз использу..


А я как раз использую hbxml. Среди нескольких подобных продуктов для харбора эта библиотека мне понравилась больше всех.

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


Пост N: 656
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 04.06.13 10:11. Заголовок: А можно ли в библиот..



 цитата:
А можно ли в библиотеку добавить возможность задавать список символов, которые требуют замены ?


Подумал еще немного на эту тему. Наверное, оптимальным вариантом будет добавить метод, который запретит какие-то замены из существующего предопределенного набора при записи xml. Например, SetDisable( "apos" ).

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




Пост N: 2898
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 04.06.13 10:59. Заголовок: Может быть использов..


Может быть использовать для этих целей команду CLASSDATA ? Или CLASS VAR ? Вроде бы они специально для этого и предназначены.

CLASS HXMLNode
..
CLASSDATA cPredefined INIT "..."



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


Пост N: 664
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 13.06.13 12:27. Заголовок: Сделал, загрузил на ..


Сделал, загрузил на SVN. Выглядит это примерно так.
Установить новые пары значений:

 цитата:
hbxml_SetEntity( { { "lt;","<" },{ "amp;","&" }, { "nbsp;"," " }, { "quot;",'"' } } )


Восстановить те, что по умолчанию:

 цитата:
hbxml_SetEntity()


Учтите, что эта установка действует для всех xml объектов и при чтении, и при записи.

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

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