1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
1

Присвоение значения из XmlDocument в textbox

08.02.2018, 13:29. Показов 1320. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Получаю Xml документ из строки следующим образом в Visual Studio 2013 c++

C++
1
2
3
XmlDocument ^doc = gcnew XmlDocument();
 
doc->LoadXml("<?xml version="1.0" encoding="UTF-8"?><exchange>  <currency>  <r030>840</r030> <txt>Долар США</txt>  <rate>1.875</rate>   <cc>USD</cc>  exchangedate>12.11.1997</exchangedate>  </currency></exchange>");
Как мне присвоить значение (rate) textbox1, чтоб в textbox1 отражалось 1.875
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2018, 13:29
Ответы с готовыми решениями:

Присвоение переменной значения TextBox
Уважаемые программеры, возникла следующая проблема: Нужно сделать программу для перевода единиц...

Присвоение TextBox'y значение переменной (не цифра)
Здравствуйте, можете мне помочь с двумя такими проблемами, пожалуйста: 1) char i = 'A'; ...

Присвоение значения label'у
Имеется переменная value типа int, нужно вывести ее значение в label. Ясен перец, сперва нужно...

Присвоение значения label переменной
Здравствуйте. Я недавно начал писать на С++, создал проект CLR накидал компонентов. Начал писать...

6
Администратор
Эксперт .NET
17118 / 13455 / 5239
Регистрация: 17.03.2014
Сообщений: 27,510
Записей в блоге: 1
08.02.2018, 15:03 2
Лучший ответ Сообщение было отмечено boby104 как решение

Решение

boby104,
C++
1
2
3
4
5
XmlDocument ^doc = gcnew XmlDocument();
 
doc->LoadXml("<?xml version="1.0" encoding="UTF-8"?><exchange>  <currency>  <r030>840</r030> <txt>Долар США</txt>  <rate>1.875</rate>   <cc>USD</cc>  <exchangedate>12.11.1997</exchangedate>  </currency></exchange>");
 
textbox1->Text = doc->SelectSingleNode("/exchange/currency/rate")->InnerText;
P.S. В XML не хватало угловой скобки перед exchangedate - добавил.
1
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
08.02.2018, 16:02  [ТС] 3
Цитата Сообщение от OwenGlendower Посмотреть сообщение
В XML не хватало угловой скобки перед exchangedate - добавил.
Да, я то я при копипасте ошибся.
Спасибо - это не то слово чтоб выразить свою благодарность.
Я только начал учить с++. Учу сам. У меня уже мозги скрутились - что я только не перечитал, а все оказывается просто. Я это подозревал - теперь знаю.

Добавлено через 5 минут
Может есть ссылка - где почитать про работу с xml - на сайтах микрософта неудобно материал изложен, особенно если не знаешь что искать
0
Администратор
Эксперт .NET
17118 / 13455 / 5239
Регистрация: 17.03.2014
Сообщений: 27,510
Записей в блоге: 1
08.02.2018, 16:14 4
boby104, попробуй https://metanit.com/sharp/tutorial/16.1.php
Там C#, а не C++, но они достаточно близки и проблем с пониманием быть не должно.
1
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
08.02.2018, 17:27  [ТС] 5
OwenGlendower,

Прошу еще помощи
у меня есть функция getHTML("USD").

C++
1
doc->LoadXml(gcnew String(getHTML("USD").c_str()));
которая получает из интернета данные в ХМЛ форме
как было показано выще, но она принимает аргумент типа
char[4]
на форме в комбобоксе comboBox1 указаны валюты
Вопрос: как передать в функцию значение из комбобокса?
Проблема в том, что там тип String^ а в функции char.
0
Администратор
Эксперт .NET
17118 / 13455 / 5239
Регистрация: 17.03.2014
Сообщений: 27,510
Записей в блоге: 1
08.02.2018, 17:37 6
Цитата Сообщение от boby104 Посмотреть сообщение
Вопрос: как передать в функцию значение из комбобокса?
Проблема в том, что там тип String^ а в функции char.
Смотри тему Преобразование между типами System::String, char*, wchar_t*, std::string и др.. Или есть возможность, то перепиши под .NET типы.

Цитата Сообщение от boby104 Посмотреть сообщение
у меня есть функция getHTML("USD") ... которая получает из интернета данные в ХМЛ форме
Надеюсь ты в курсе что HTML документ не обязан соблюдать правила XML и попытка загрузить его как XML может привести к ошибке. Для HTML есть библиотеки позволяющие трактовать его как XML. Например, HtmlAgilityPack.
0
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
08.02.2018, 19:09  [ТС] 7
Цитата Сообщение от OwenGlendower Посмотреть сообщение
адеюсь ты в курсе что HTML документ не обязан соблюдать правила XML и попытка загрузить его как XML может привести к ошибке
Я понимаю, что выгляжу глупо. Мой бакграунд - это программирование в ВБА и МС Аксесс.
С++ изучаю сам и пока вопросы преобразования типов для меня темный лес. Функция getHTML
только так называется, я просто ее заточил под сайт банка который выдает данные строго в ХМЛ формате.
Сейчас буду изучать предложенную выше ссылку.
Спасибо

Добавлено через 38 минут
Вот как у меня получилось преобразовать
String^ в const char *
C++
1
2
3
4
5
6
7
8
using namespace msclr::interop; 
                 
marshal_context^ marshal = gcnew marshal_context();
                 
const char* val = marshal->marshal_as<const char*>(comboBox1->Text);
                     
doc->LoadXml(gcnew String(getHTML(val).c_str()));
this->textBoxXML->Text = doc->SelectSingleNode("/exchange/currency/rate")->InnerText;
Пришлось передаваемый тип в функцию заменить с char* на const char *
0
08.02.2018, 19:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2018, 19:09
Помогаю со студенческими работами здесь

Присвоение введённого значения в TextBox
Доброго времени суток всем. Проблема в следующем: при стирании в TextBox всего прога виснет, в чём...

Присвоение 0 в textBox
Как изначально при запуске программы присвоить в поле textBox переменную 0?

Присвоение текста вложенному TextBox
Здравствуйте. У меня есть listBox, содержащий textBox и кнопку. Хочу сделать событие для кнопки,...

Построчное присвоение текста в TextBox
Здравствуйте. Недавно начал осваивать Visual Studio. В общем требуется через переменную построчно...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru