Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/40: Рейтинг темы: голосов - 40, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 06.05.2016
Сообщений: 23

Редактирование файла в формате XML

01.11.2016, 12:18. Показов 7948. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть файл, имеющий структуру xml.
В разделе
XML
1
<Profile><StorageRoot><AcApData><HideableDialogs><HideableDialog id="ScaleList.LargeScaleAlert" title="Масштаб аннотаций — большое количество масштабов" category="Масштаб аннотаций" application="" result="7">
надо заменить result="7" на result="6".
Файлы примеров прилагаются.
Пробовал для этого XML-редактор xmlstarlet, но что-то не получилось.
Вложения
Тип файла: 7z FixedProfile.aws.7z (461 байт, 8 просмотров)
Тип файла: 7z FixedProfile2.aws.7z (1.3 Кб, 5 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.11.2016, 12:18
Ответы с готовыми решениями:

Редактирование XML-файла
Есть большой XML-файл в котором множество незакрытых тэгов. Т.е. файл такого вида: &lt;teg&gt;Какие-то данные &lt;drugoy_teg&gt;Еще...

Редактирование файла xml
Доброй ночи!!! Кому не трудно, объясните нормально работу ( на примере ) стандартного парсера xmldocument. Необходимо загрузить текст...

Редактирование XML файла
Здравствуйте. Есть файл типа: &lt;offer&gt; &lt;uniq&gt;111&lt;/uniq&gt; &lt;param&gt;001&lt;/param&gt; &lt;image&gt;image1.jpg&lt;/image&gt; &lt;/offer&gt; ...

4
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
01.11.2016, 14:57
PowerShell
1
2
3
$x = Select-Xml -Path X:\Path\FixedProfile.aws -XPath '//HideableDialog'
$x.Node.result = '6'
$x.Node.OwnerDocument.Save($x.Path)
Где X:\Path - папка, в которой лежит aws файл.
Во втором случе, если требуется изменить только result = 7 на 6, то:
PowerShell
1
2
$a = Select-Xml -Path X:\Path\FixedProfile2.aws -XPath '//HideableDialog'
($a | Where-Object {$_.Node.result -eq 7}).Node.result = '6'
Ну, и не забудьте сохранить сделанные изменения.
1
0 / 0 / 0
Регистрация: 06.05.2016
Сообщений: 23
02.11.2016, 10:12  [ТС]
Очень сильно извиняюсь, со средой PowerShell не знаком совсем Научился запускать скрипты. Первый скрипт меняет значение и сохраняет файл, но при этом меняет форматирование файла (вместо одной строки приводит к форматированию xml). Вроде не критично, программа, использующая этот файл, его поняла, но если можно, лучше оставить форматирование.
Второй скрипт, как я понимаю, не сохраняет документ. Попробовал взять команду сохранения из первого скрипта с заменой $x на $a - ругается.
Во втором файле менять значение result нужно только в секции
XML
<HideableDialog id="ScaleList.LargeScaleAlert" .... result="7"></HideableDialog>
,
потому что неизвестно в какой ещё секции может встретится result="7" в других файлах. По сути первый файл - урезанная версия второго (с одной секцией).
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
02.11.2016, 16:45
Цитата Сообщение от Mitek1977
...но если можно, лучше оставить форматирование.
Ну дык... в чем проблема-то?!
PowerShell
1
2
3
4
[xml]$x = Get-Content FixedProfile.xml -Encoding UTF8
$n = Select-Xml $x -XPath '//HideableDialog'
$n.Node.result = '6'
Out-File FixedProfile.xml -Encoding UTF8 -InputObject $x.OuterXml
Цитата Сообщение от Mitek1977
...потому что неизвестно в какой ещё секции может встретится...
Иными словами xml может содержать более одного узла, в котором значится result="7"?
0
0 / 0 / 0
Регистрация: 06.05.2016
Сообщений: 23
02.11.2016, 16:57  [ТС]
Цитата Сообщение от greg zakharov Посмотреть сообщение
Иными словами xml может содержать более одного узла, в котором значится result="7"?
Да. Собственно это файл настроек программы, у каждого узла есть свой result и их значения могут быть одинаковыми для разных узлов, поэтому нужно менять именно в узле
XML
1
<HideableDialog id="ScaleList.LargeScaleAlert"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.11.2016, 16:57
Помогаю со студенческими работами здесь

Редактирование xml-файла
Всем доброго дня, вопрос у меня такой, как изменить значение атрибута в xml файле? Вот есть у меня конфигурационный файл примерно с...

Редактирование XML файла
Помогите пожалуйста разобраться. Eсть xml документ: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;IPNetDescList&gt; ...

Редактирование XML файла
Здравствуйте, столкнулся с проблемой &quot;фильтрации&quot; xml файла. Задача по сути легкая, но есть одно НО : файл, в котором проводится...

Прогноз погоды с выходом файла в формате xml
Здравствуйте. Нужно создать приложение, которое будет брать информацию о погоде, к примеру: https://www.yahoo.com/news/weather/ на...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru