Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
 Аватар для sashasoft
0 / 0 / 0
Регистрация: 29.07.2012
Сообщений: 13

Работа с XML файлами

23.12.2013, 23:04. Показов 3686. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужен пример (полностью) простой програмулины которая работает с xml файлами !!! самые простые действия... в остальном сам разберусь)) (постараюсь)))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.12.2013, 23:04
Ответы с готовыми решениями:

Работа с файлами Xml
Подскажите, плиз,начинающему программисту как лучше выбирать данные из XML файла в С++ Builder: 1. Работать как с текстовым файлом,...

Работа с XML файлами в Builder С++
Добрый день, уважаемые форумчане! Подскажите какие-нибудь учебники по работе с XML файлами в Builder С++. ПОЖАЛУЙСТА! в интернете ничего...

Работа в Qt с XML файлами имеющими пространства имен
Имеется простейший XML файл: <?xml version="1.0" encoding="utf-8"?> <Example xmlns="ab" xmlns:ns1="abc"...

3
Заблокирован
24.12.2013, 04:56
Как будет время, может, сделаю пример.
А пока попробуйте руками поработать, это же простой текстовый формат.
0
 Аватар для sashasoft
0 / 0 / 0
Регистрация: 29.07.2012
Сообщений: 13
24.12.2013, 22:42  [ТС]
Та пробую...
Взял за основу эту статью
http://www.rsdn.ru/?article/inet/wininet.xml
Но и этот выбрасывает исключение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
// MSXMLParser.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <atlbase.h>
//#include <msxml.h>
//#include <MsXml2.h>
#include <iostream>
 
void main()
{
    // Start COM
    CoInitialize(NULL);
 
    // Open the file...note this simplistic executable
    // assumes the file is named "xmldata.xml" and is 
    // in the same directory as the executable.  It
    // further assumes the file looks like this:
    //
    // <?xml version="1.0"?>
    // <xmldata>
    //    <xmlnode />
    //    <xmltext>Hello, World!</ xmltext>
    // </xmldata>
    //
    // The executable will find the node "xmlnode"
    // and insert a new node "xmlchildnode" (with the
    // attribute 'xml="fun"') if everything
    // works as expected. It then finds the node
    // "xmltext" and retrieves the text contained
    // within the node and displays that. Finally, it
    // saves the XML document into a new file named
    // "updatedxml.xml".
    try {
        // Create an instance of the parser
        CComPtr<IXMLDOMDocument> spXMLDOM;
        HRESULT hr = spXMLDOM.CoCreateInstance(__uuidof(DOMDocument));
        if ( FAILED(hr) ) throw "Unable to create XML parser object";
        if ( spXMLDOM.p == NULL ) throw "Unable to create XML parser object";
 
        // Load the XML document file...
        VARIANT_BOOL bSuccess = false;
    hr = spXMLDOM->load(CComVariant(L"xmldata.xml"),&bSuccess);
    //hr = spXMLDOM->loadXML(L"xmldata.xml", &bSuccess);
 
        if ( FAILED(hr) ) throw "Unable to load XML document into the parser";
        if ( !bSuccess ) throw "Unable to load XML document into the parser";
 
        // Check for <xmldata>
        //              <xmlnode>...
        //
        // Construct search string
        //  "xmldata/xmlnode"
        CComBSTR bstrSS(L"xmldata/xmlnode");
        CComPtr<IXMLDOMNode> spXMLNode;
        hr = spXMLDOM->selectSingleNode(bstrSS,&spXMLNode);
        if ( FAILED(hr) ) throw "Unable to locate 'xmlnode' XML node";
        if ( spXMLNode.p == NULL ) throw "Unable to locate 'xmlnode' XML node";
 
        // The COM object "spXMLNode" now contains the XML
        // node <xmlnode>, so we create a child node at
        // this point...  The DOM creates the node itself,
        // then we place it using the XML node we located as
        // the parent.
        CComPtr<IXMLDOMNode> spXMLChildNode;
        hr = spXMLDOM->createNode(CComVariant(NODE_ELEMENT),CComBSTR("xmlchildnode"),NULL,&spXMLChildNode);
        if ( FAILED(hr) ) throw "Unable to create 'xmlchildnode' XML node";
        if ( spXMLChildNode.p == NULL ) throw "Unable to create 'xmlchildnode' XML node";
 
        // Place the node...if all goes well, the two nodal
        // parameters provided to appendChild will be the 
        // same node. If there is a problem, the "inserted"
        // node's pointer will be NULL.
        CComPtr<IXMLDOMNode> spInsertedNode;
        hr = spXMLNode->appendChild(spXMLChildNode,&spInsertedNode);
        if ( FAILED(hr) ) throw "Unable to move 'xmlchildnode' XML node";
        if ( spInsertedNode.p == NULL ) throw "Unable to move 'xmlchildnode' XML node";
 
        // Add the attribute. Note we do this through the IXMLDOMElement
        // interface, so we need to do the QI().
        CComQIPtr<IXMLDOMElement> spXMLChildElement;
        spXMLChildElement = spInsertedNode;
        if ( spXMLChildElement.p == NULL ) throw "Unable to query for 'xmlchildnode' XML element interface";
 
        hr = spXMLChildElement->setAttribute(CComBSTR(L"xml"),CComVariant(L"fun"));
        if ( FAILED(hr) ) throw "Unable to insert new attribute";
 
        // Check for <xmldata>
        //              <xmltext>...
        //
        // Construct search string
        //  "xmldata/xmltext"
        spXMLNode = NULL; // release previous node...
        bstrSS = L"xmldata/xmltext";
        hr = spXMLDOM->selectSingleNode(bstrSS,&spXMLNode);
        if ( FAILED(hr) ) throw "Unable to locate 'xmltext' XML node";
        if ( spXMLNode.p == NULL ) throw "Unable to locate 'xmltext' XML node";
 
        // Pull the enclosed text and display
        CComVariant varValue(VT_EMPTY);
        hr = spXMLNode->get_nodeTypedValue(&varValue);
        if ( FAILED(hr) ) throw "Unable to retrieve 'xmltext' text";
 
        if ( varValue.vt == VT_BSTR ) {
            // Display the results...since we're not using the
            // wide version of the STL, we need to convert the
            // BSTR to ANSI text for display...
            USES_CONVERSION;
            LPTSTR lpstrMsg = W2T(varValue.bstrVal);
            std::cout << lpstrMsg << std::endl;
        } // if
        else {
            // Some error
            throw "Unable to retrieve 'xmltext' text";
        } // else
 
        // If we got this far, we've inserted the new node, so
        // save the resulting XML document...
        hr = spXMLDOM->save(CComVariant("updatedxml.xml"));
        if ( FAILED(hr) ) throw "Unable to save updated XML document";
 
        // Write a note to the screen...
        std::cout << "Processing complete..."  << std::endl << std::endl;
    } // try
    catch(char* lpstrErr) {
        // Some error...
        std::cout << lpstrErr << std::endl << std::endl;
    } // catch
    catch(...) {
        // Unknown error...
        std::cout << "Unknown error..." << std::endl << std::endl;
    } // catch
 
    // Stop COM
    CoUninitialize();
  system("pause");
}
0
 Аватар для sashasoft
0 / 0 / 0
Регистрация: 29.07.2012
Сообщений: 13
06.01.2014, 20:57  [ТС]
Решил я проблему.
Нужно просто добавить в проект
пару строчек
C++
1
2
3
4
5
6
7
#include "stdafx.h"
 
#include <stdio.h> //стандартный консольный проект + строки ниже
#include <msxml6.h>
#include <MsXml2DId.h>
#include <atlbase.h>
#include <iostream>
И все работает!!!
И не думаю, что работать с xml-файлами, как текстовыми будет правильным! На то он о xml...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.01.2014, 20:57
Помогаю со студенческими работами здесь

Работа с файлами XML,DOC,HTML,TEXT.
Как файлы с расширением xml,doc,html,text запихнуть в Borland C++ Builder 6 ? (Курсачь делаю на тему &quot;Справочник&quot;, а вот...

Работа с xml файлами
Здравствуйте! Подскажите пожалуйста, как производить считывание и запись в xml. при записи делаю так : XmlWriter xml =...

Работа с XML файлами
Здравствуйте, товарищи. Прошу совета экспертов в данном вопросе. Моя задача: создать программу, формирующую документы в формате XML. ...

Работа с XML-файлами
Друзья! Есть такое дело: на форме Windows Forms есть элемент ListBox1, в котором отображается список XML-файлов таким образом: ...

Работа с xml файлами
Доброй ночи всем. Есть xml типа ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru