Member 13089825 Ответов: 0

Синтаксический анализ Xml в vc++ mfc


я пытаюсь разобрать xml файл но не получаю всего результата
не могли бы вы пожалуйста, помогите мне здесь.

Что я уже пробовал:

?xml version="1.0"?><bases count='5'><base><attr name='username' value=ven'/><attr name='ip' value=ram'/></base><base><attr name='username' value=ven'/><atr name='ip' value=ram'/></base><base><attr name='username' value=ven'/><atr name='ip' value=ram'/></base></bases>


TElem eroot(iRootElm); // eroot contain the above xml file 
wstring count = eroot.attr(L"count");//count coiming correctly
TElem elementnode = eroot.subnode(L"base");
for (TElem e = elementnode.begin(); (elementnode.elem && (elementnode != eroot.end())); elementnode++)
{      
TElem elementnsubode = e;     //updated now      
    wstring csName = elementnsubode.attr(L"name");//
    wstring csValue = elementnsubode.attr(L"value");
}

вышесказанное возвращает только имя пользователя и ven
ее ни печатают то ниже

в <предварительно&ГТ;&ЛТ;АТР имя='uname2' значение=баран'/&ГТ;&ЛТ;/база&ГТ;&ЛТ;/баз&ГТ;этот

Richard MacCutchan

Какую библиотеку парсеров вы используете?

Member 13089825

com-парсер
CComPtr<ixmldomdocument> iXMLDoc;
иксмлдок.CoCreateInstance(__uuidof(DOMDocument));
VARIANT_BOOL bSuccess = false;
CComPtr<ixmldomelement> iRootElm;
iXMLDoc->loadXML((bsResponse), &bSuccess);

Richard MacCutchan

Второй элемент пишется "atr", а не "attr".

Member 13089825

изменено(это ошибка typoo), но все та же проблема

Richard MacCutchan

Я не вижу нигде в вашем коде, где вы инициализируете объект elementsubnode. И я не могу понять, что на самом деле должна делать эта петля.

Member 13089825

я обновил вопрос сейчас и цикл для того чтобы там было количество attrs будет там я не добавил что здесь

Richard MacCutchan

TElem elementnsubode = e;

Вы определили e (в вашем for заявление), чтобы быть elementnode тип, поэтому вы не можете предположить, что это сейчас elementnsubode, так как он не будет указывать на правильный узел.

0 Ответов