Форум программистов, компьютерный форум CyberForum.ru

ПОМОГИТЕ получить аттрибуты из XML документа, через DOM на VC++ - C++

Восстановить пароль Регистрация
 
AndrSvirskiy
Сообщений: n/a
15.10.2008, 18:14     ПОМОГИТЕ получить аттрибуты из XML документа, через DOM на VC++ #1
Вот кусок XML документа:

<node id='0002' typeindex='2'>
<nattr value='left:01968;top:06483;width:01537;height:01153;strokestyle:solid; angle:00; displaystate:yes; z-index:1; strokeweight:0.24pt' />
<nodeFields>
<fieldValue index='1' value=''>
<label_attr value='displaystate:no' />
</fieldValue>
<fieldValue index='2' value=''>
<label_attr value='displaystate:no' />
</fieldValue>
<fieldValue index='3' value=''>
<label_attr value='displaystate:no' />
</fieldValue>
<fieldValue index='4' value=''>
<label_attr value='displaystate:no' />
</fieldValue>
</nodeFields>
</node>
...

Я загрузил документ, и получил IXMLDOMSelection

IXMLDOMSelection oDOMSelection2(xmlDoc.selectNodes('node'));

IXMLDOMNode* pIXMLDOMNode = new IXMLDOMNode(oDOMSelection2.nextNode());

в общем доступился до этого(этих) нода.

КАК получить его аттрибуты (например id, typeindex, value в nattr (см XML документ))???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2008, 18:14     ПОМОГИТЕ получить аттрибуты из XML документа, через DOM на VC++
Посмотрите здесь:

Помогите открыть файл через его путь C++
C++ Помогите получить HDC принтера вывести печать текста функцией DrawText
C++ В строке S1 найти слово DOM
Помогите решить задачу(Гражданин открыл счет в банке. Определить прирост и сумму вклада через определенное время) C++
Класс Прямая(Помогите реализовать построение прямой через 1 точку и параллельную ей прямую) C++
C++ Необходимо создать двумерный массив с количеством строк равным количеству полученных узлов xml документа.
C++ Помогите переделать работу с массивом через указатели
C++ Как получить информацию о процессах через API?
Как получить пусть к папке exe через api C++
C++ Проверка корректности xml документа
Не могу получить доступ к private данным через дружественную функцию C++
C++ Не могу получить строку через getline

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
St.ALKer
Сообщений: n/a
29.03.2009, 13:47     ПОМОГИТЕ получить аттрибуты из XML документа, через DOM на VC++ #2
Пункт1: Лучше пользоваться MS-овскими же smart pointer'ами (именя те же, что у интерфейсов, но удобнее, удаляется само, etc.)

Кусок кода (не мой, пояснять тож не буду, но работает

CString CMarkupMSXML::x_GetAttrib( MSXML::IXMLDOMNodePtr pNode, LPCTSTR szAttrib ) const
{
CString csAttrib;
CString attr(szAttrib); //ïðîáóåì íàïèñàíèå â upper è lower case
attr.MakeUpper();
MSXML::IXMLDOMNodePtr pAttrib;
HRESULT hr = pNode->Getattributes()->raw_getNamedItem( _bstr_t(attr), &pAttrib );
if ( SUCCEEDED(hr) && ((bool)pAttrib) )
{
_variant_t varVal = pAttrib->GetnodeValue();
if ( varVal.vt == VT_BSTR )
csAttrib = (LPCTSTR)_bstr_t(varVal.bstrVal);
}
else
{
attr.MakeLower();
hr = pNode->Getattributes()->raw_getNamedItem( _bstr_t(attr), &pAttrib );
if ( SUCCEEDED(hr) && ((bool)pAttrib) )
{
_variant_t varVal = pAttrib->GetnodeValue();
if ( varVal.vt == VT_BSTR )
csAttrib = (LPCTSTR)_bstr_t(varVal.bstrVal);
}
}
return csAttrib;
}

Удачи.
Yandex
Объявления
29.03.2009, 13:47     ПОМОГИТЕ получить аттрибуты из XML документа, через DOM на VC++
Ответ Создать тему
Опции темы

Текущее время: 20:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru