Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Fobes
16 / 16 / 5
Регистрация: 19.09.2012
Сообщений: 215
1

Может ли MSXML в XML файле найти все вхождения "123" в значениях атрибутов элементов и заменить их на "321"?

08.10.2016, 01:30. Просмотров 814. Ответов 1
Метки нет (Все метки)

Всем доброго времени суток. Столкнулся со странноватой задачей, но что-то застрял с ней, т.к. использую либу MSXML. Собственно смыл: считываю кусок XML документа, там могут быть совершенно разные элементы, моя задача найти все вхождения "123" в значениях атрибутов и заменить их на "321". Было бы очень кстати перевести CComPtr<IXMLDOMNode> pNode; в CString и метод Replace(L"123",L"321") решил бы все мои проблемы, но так по моему нельзя. Так вот, подскажите, как решить данную задачку при помощи MSXML, а то я застрял, для получения и изменения значений атрибутов мне нужно знать их имена, но мне это не нужно, нужно просто поменять все значения атрибутов где есть "123". Подскажите пожалуйста

Добавлено через 1 час 33 минуты
Ладно, за неимением вариантов, просто пробегусь по известным вариантам...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2016, 01:30
Ответы с готовыми решениями:

Найти все вхождения в строку последовательности символов "сто" и заменить на "100"
Дана строка символов. Найти все вхождений последовательностей символов &quot;сто&quot; и...

Заменить в последовательности символов после первого вхождения символа "+" все цифры на символ "-"
Заменить в последовательности символов после первого вхождения символа &quot;+&quot;все...

Дано предложение. Заменить в нем все вхождения буквосочетания "да" на "нет"
Дано предложение. Заменить в нем все вхождения буквосочетания да на нет.

Вывести на экран фразу "Мне n лет", учитывая что при некоторых значениях n слово "лет" надо заменить на "год"
дано натуральное число n. Вывести на экран фразу &quot;Мне n лет&quot;, учитывая что при...

Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков "+", "-", "*".
Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть...

1
Invader0x7F
Helper C/C++
281 / 158 / 122
Регистрация: 22.09.2016
Сообщений: 518
Завершенные тесты: 5
08.10.2016, 09:14 2
Лучший ответ Сообщение было отмечено Fobes как решение

Решение

MSXML Parser не имеет ничего общего с данной проблемой. Функцию Replace(L"123", L"321") можно написать самостоятельно:

C++
1
2
3
4
5
void Replace(const CString& s1, CString& s2)
{
    int iIndex = s1.GetLength() - 1;
    while (iIndex >= 0) s2 += s1[iIndex--];
}
Вы можете, к примеру, создать класс инкапсулирующий механизмы работы с MSXML и решающий вашу задачу. В нем, объявите функцию-член void Replace(const CString& s1, CString& s2) { } как указано выше, и вызывайте ее с вашими данными в качестве параметров: Replace(L"123", L"321").
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2016, 09:14

Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd"
Вот функция для удаления столбца: #pragma once #include &lt;iostream&gt; using...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить...

Заменить все вхождения символа "a" на "b"
заменить все вхождения символа &quot;a&quot; на символ &quot;b&quot;. использовать string вот мой...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru