powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Работа с XML через PBDOB
8 сообщений из 8, страница 1 из 1
Работа с XML через PBDOB
    #38747020
NapalmRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем времени суток!
Третий день бьюсь с проблемой и никак не могу решить.
Есть необходимость создать XML документ определённой структуры.
Пользуясь документацией и официальной справкой нашёл такую штуку как PBDOM (pbd есть в самом дистрибутиве билдера)

Далее все просто:
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
doc = CREATE PBDOM_Document;	
childrens[1] = create PBDOM_Element;
childrens[1].setName("Title");
childrens[1].setText(data.title[1]);

root = CREATE PBDOM_Element;
root.SetName("root");
root.settext("some text");
root.setcontent(childrens);

doc.addContent(root);
doc.SaveDocument(filename);
destroy(doc);


Вот на этой строке doc.addContent(root); вылетает эксепшн: не могу добавить дочерний элемент. Если же использую вместо addcontent setContent и передаю массив в качестве аргумента, ошибок не происходит, но файл сохраняется совершенно пустой...

Очень надеюсь на хоть какую-нибудь подсказку.

Заранее благодарю!
...
Рейтинг: 0 / 0
Работа с XML через PBDOB
    #38747021
NapalmRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точный текст эксепшна:
авторInternal XML engine error.
Extra Information :
Function Name : pbdom_document::AddContent(ref pbdom_object pbdom_object_ref)
Unable to Append Child.
...
Рейтинг: 0 / 0
Работа с XML через PBDOB
    #38747083
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
15.09.2014 17:45, NapalmRain пишет:

> Третий день бьюсь с проблемой и никак не могу решить.
> Есть необходимость создать XML документ определённой структуры.

А не проще нагенерить этот документ руками?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Работа с XML через PBDOB
    #38747461
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пару лет тому назад тоже помучился с PBDOM. Что-то работает. Что-то не работает. Что-то работает, но криво.
Плюнул и стал использовать "MSXML2.DOMDocument.4.0". Все работает. Описание и примеры на русском языке в интернете хватает.

Good Luck !
...
Рейтинг: 0 / 0
Работа с XML через PBDOB
    #38747528
NapalmRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000,

да, я сначала так и делал, но потом наткнулся на готовую библиотеку и подумал: зачем я буду использовать самописный велосипед, когда уже есть готовый функционал?... как-то так.
...
Рейтинг: 0 / 0
Работа с XML через PBDOB
    #38747530
NapalmRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChV,

ну да. пожалуй, есть смысл посмотреть в его сторону. Благодарю за наводку!
...
Рейтинг: 0 / 0
Работа с XML через PBDOB
    #38750754
MK_PB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё работает, не надо наговаривать на PB.
Я бы не советовал использовать PBDOM. т.к. данная технология парсит весь XML в памяти. что может быть критично при больших объёмах данных.

-----------------------------
Вот рабочий пример:
-----------------------------

PBDOM_BUILDER pbdom_builder
PBDOM_DOCUMENT pbdom_doc
PBDOM_ELEMENT pbdom_root
string s_xml


TRY
pbdom_builder = CREATE PBDOM_BUILDER
pbdom_root = CREATE PBDOM_ELEMENT

// Пустой документ
pbdom_doc = pbdom_builder.buildFromString( "" )
// Имя нода в руте
pbdom_root.setName( "root" )
pbdom_root.setText( "some text" )
// Устанавливаем рут элемент
pbdom_doc.setRootElement( pbdom_root )
// Дебаг
s_xml = pbdom_doc.saveDocumentIntoString( )
messageBox( "", s_xml )

CATCH( runTimeError RTE )
messageBox( "Error", RTE.Text )
FINALLY
IF isValid( pbdom_builder ) THEN Destroy( pbdom_builder )
IF isValid( pbdom_root ) THEN Destroy( pbdom_root )
END TRY
...
Рейтинг: 0 / 0
Работа с XML через PBDOB
    #38751198
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MK_PBВсё работает...
Сказано сильно. Дай бог. Спорить не буду, да и некогда.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Работа с XML через PBDOB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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