Автор | Сообщение |
|
| |
Не зарегистрирован
Зарегистрирован: 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>
|
|
|
Ответов - 13
[только новые]
|
|
|
| |
Пост N: 3186
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.05.13 22:51. Заголовок: пипец а что я это вы..
пипец а что я это вытащил из премодерации....... ;)
|
|
|
|
| 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 |
|
|
|
|
|
| Администратор
|
Пост N: 2891
Зарегистрирован: 23.05.05
|
|
Отправлено: 31.05.13 08:45. Заголовок: Dima пишет: пипец а..
Dima пишет: цитата: | пипец а что я это вытащил из премодерации....... ;) |
| Товарищ по ошибке кликнул вместо кнопки "Новая тема" на "Новый опрос"
|
|
|
|
| |
Пост N: 3187
Зарегистрирован: 17.05.05
|
|
Отправлено: 31.05.13 10:04. Заголовок: Поправил 1 месагу...
Поправил 1 месагу.
|
|
|
|
| |
Пост N: 2
Зарегистрирован: 01.06.13
|
|
Отправлено: 01.06.13 13:15. Заголовок: Спасибо, что я имел ..
Спасибо, что я имел в виду приветствую Tadeusz
|
|
|
|
| Администратор
|
Пост N: 2893
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.06.13 14:22. Заголовок: alkresin пишет: Есл..
alkresin пишет: цитата: | Если речь идет об hbxml.lib из HwGUI |
| Александр, проясните пожалуйста такой момент: Сейчас в Вашей библиотеке выполняется замена символов, в частности: ' --> ' " --> &qout; Сдаем квартальную отчетность в ПФР. По правилам этого учреждения наименование организации должно быть на верхнем регистре, и не иметь символа ". Двойные кавычки рекомендуется заменять на одинарные. Заменяю. Делаю результирующий xml. hbxml делает замену ' --> ' Программы проверки ПФР ругаются, обнаруживая символы на нижнем регистре, и не принимают отчет. А теперь внимание вопрос (c) Насколько обязательным в xml является замена одинарных кавычек на ' ? Или это недоработка ПФР ? Потому как ПФУ (такая же организация, только на Украине), распознает ' в xml.
|
|
|
|
| moderator
|
Пост N: 650
Зарегистрирован: 06.07.06
|
|
Отправлено: 02.06.13 14:51. Заголовок: Насколько я понимаю,..
Насколько я понимаю, эта замена обязательна в тех случаях, когда ее неприменение приводит к неоднозначности, в остальных случаях она допустима, но не необходима. В частности, в атрибутах тэга она обязательна - см., например, здесь. В некоторых приложениях XML она обязательна везде, например, в для sitemap или в стандарте Яндекса. В любом случае, такая замена не является нарушением, но ПФР закон не писан :)
|
|
|
|
| Администратор
|
Пост N: 2894
Зарегистрирован: 23.05.05
|
|
Отправлено: 03.06.13 07:53. Заголовок: А можно ли в библиот..
А можно ли в библиотеку добавить возможность задавать список символов, которые требуют замены ? По умолчанию пусть их будет 6, но этот список можно было бы изменить. Я смотрю, софт, который готовит отчетность в формате xml в различные организации (сейчас это распространено), не выполняет подобных замен, а выгружает спецсимволы как они есть. И программы приема и проверки отчетности бывает их не воспринимают (пример - этот ПФР).
|
|
|
|
| moderator
|
Пост N: 651
Зарегистрирован: 06.07.06
|
|
Отправлено: 03.06.13 09:03. Заголовок: А можно ли в библиот..
цитата: | А можно ли в библиотеку добавить возможность задавать список символов, которые требуют замены ? |
| Хорошая мысль. Так и сделаю. С ПФР у меня этой проблемы не возникало, потому что я изначально делал отчеты для него без hbxml. Просто FCreate(), FWrite() ... Библиотеку я использую когда надо не только выводить что-то в xml, но и читать и анализировать его.
|
|
|
|
| Администратор
|
Пост N: 2895
Зарегистрирован: 23.05.05
|
|
Отправлено: 03.06.13 09:19. Заголовок: А я как раз использу..
А я как раз использую hbxml. Среди нескольких подобных продуктов для харбора эта библиотека мне понравилась больше всех.
|
|
|
|
| moderator
|
Пост N: 656
Зарегистрирован: 06.07.06
|
|
Отправлено: 04.06.13 10:11. Заголовок: А можно ли в библиот..
цитата: | А можно ли в библиотеку добавить возможность задавать список символов, которые требуют замены ? |
| Подумал еще немного на эту тему. Наверное, оптимальным вариантом будет добавить метод, который запретит какие-то замены из существующего предопределенного набора при записи xml. Например, SetDisable( "apos" ).
|
|
|
|
|
| Администратор
|
Пост N: 2898
Зарегистрирован: 23.05.05
|
|
Отправлено: 04.06.13 10:59. Заголовок: Может быть использов..
Может быть использовать для этих целей команду CLASSDATA ? Или CLASS VAR ? Вроде бы они специально для этого и предназначены. CLASS HXMLNode .. CLASSDATA cPredefined INIT "..."
|
|
|
|
| moderator
|
Пост N: 664
Зарегистрирован: 06.07.06
|
|
Отправлено: 13.06.13 12:27. Заголовок: Сделал, загрузил на ..
Сделал, загрузил на SVN. Выглядит это примерно так. Установить новые пары значений: цитата: | hbxml_SetEntity( { { "lt;","<" },{ "amp;","&" }, { "nbsp;"," " }, { "quot;",'"' } } ) |
| Восстановить те, что по умолчанию: Учтите, что эта установка действует для всех xml объектов и при чтении, и при записи.
|
|
|
|