XML

Модуль XML 1.1

Нет прав для скачивания

Shegorat

Lord of Madness
Администратор
Пользователь Shegorat разместил новый ресурс:

XML - Модуль для работы с файлами формата XML

Модуль для работы с файлами формата XML.
Первая версия. Содержит основные функции:
  1. Чтение значения
  2. Запись значения
  3. Изменение значения
  4. Удаление значения
В архиве модуль и пример использования.
Узнать больше об этом ресурсе...
 

Аким

Новичок
Подскажите как будет выглядеть пример для изменения вот такого файла:

Код:
<config>
   <chat>
     <filter showEnemy="false" showFriendly="false" showDivision="true" showDead="false" showTk="false"/>
   </chat>
</config>
 

Shegorat

Lord of Madness
Администратор
Аким
Как-то так. Файл, который редактируется, должен существовать.
Код:
  XMLFileSetTagParam(ExpandConstant('{app}\cfg.xml'), 'config\chat\filter', 'showEnemy', 'true');
  XMLFileSetTagParam(ExpandConstant('{app}\cfg.xml'), 'config\chat\filter', 'showFriendly', 'true');
  XMLFileSetTagParam(ExpandConstant('{app}\cfg.xml'), 'config\chat\filter', 'showDivision', 'false');
  XMLFileSetTagParam(ExpandConstant('{app}\cfg.xml'), 'config\chat\filter', 'showDead', 'false');
  XMLFileSetTagParam(ExpandConstant('{app}\cfg.xml'), 'config\chat\filter', 'showTk', 'false');
P.S. За всё время никто не обнаружил, что я немного накосячил в модуле. Во вложении исправленная версия, используйте пока её. Я планирую отрефакторить код, правда хз когда...
 

Вложения

  • 15.3 KB Просмотры: 29

Хамик

Старожил
Shegorat, Как в вашем модуле сделать первую строку такого вида?:
Код:
<?xml version="1.0" encoding="ISO-8859-1"?>
P.S. Все разобрался.
 
Последнее редактирование:

Аким

Новичок
Еще такой вопрос, как не изменить а записать такую новую строку в файл
Код:
<config>
   <chat>
     <filter showEnemy="false" showFriendly="false" showDivision="true" showDead="false" showTk="false"/>
   </chat>
</config>
 

YURSHAT

Тех. админ
Администратор
Еще такой вопрос, как не изменить а записать такую новую строку в файл
Код:
  XMLFileWriteValue(ExpandConstant('{app}\cfg.xml'), 'config\chat\filter', '', '', True);
  XMLFileSetTagParam(ExpandConstant('{app}\cfg.xml'), 'config\chat\filter', 'showEnemy', 'false');
  XMLFileSetTagParam(ExpandConstant('{app}\cfg.xml'), 'config\chat\filter', 'showFriendly', 'false');
  XMLFileSetTagParam(ExpandConstant('{app}\cfg.xml'), 'config\chat\filter', 'showDivision', 'true');
  XMLFileSetTagParam(ExpandConstant('{app}\cfg.xml'), 'config\chat\filter', 'showDead', 'false');
  XMLFileSetTagParam(ExpandConstant('{app}\cfg.xml'), 'config\chat\filter', 'showTk', 'false');
 

Аким

Новичок
Получается не совсем то что хотелось бы.
Код:
<config>
   <chat>
     <filter showEnemy="false" showFriendly="false" showDivision="true" showDead="false" showTk="false">
     </filter>
   </chat>
</config>
Хотелось бы именно вот так:
Код:
<config>
   <chat>
     <filter showEnemy="false" showFriendly="false" showDivision="true" showDead="false" showTk="false"/>
   </chat>
</config>
 

Shegorat

Lord of Madness
Администратор
Хотелось бы именно вот так:
Внимательно просмотрите свой код. Последний параметр в XMLFileWriteValue, в вашем случае должен быть True. Код, что предоставил YURSHAT делает именно то, что вам необходимо.
 

Аким

Новичок
Да, я был невнимателен, спасибо.
Тут наткнулся на интересный файл (прилагаю) с одинаковыми параметрами.
Как добавить новые строки чтоб не заменились имеющиеся похожие.
Задача добавить эти строки в соответствующие секции:

Код:
<element name="altHeader" class="AltHeaderContainer" url="alt_header.swf"/>

<controller class="w03l.alt.battle_controllers.AltHeaderController" clips="pingometer,altHeader,battleTimer"/>
А так же хотелось бы знать как в такой ситуации можно менять значения в определенной конкретной строке?
 

Вложения

Shegorat

Lord of Madness
Администратор
Тут наткнулся на интересный файл (прилагаю) с одинаковыми параметрами.
Как добавить новые строки чтоб не заменились имеющиеся похожие.
Задача добавить эти строки в соответствующие секции:
Пока никак. Возможно потом что-нибудь и придумаю.
 

Ekspoint

Новичок
Как сделать несколько одинаковых строк?
Код:
XMLFileWriteValue(ExpandConstant('{#SetupSetting("DefaultDirName")}\Paths.xml'), 'Root\Paths\Path', '', './res_mods/0.9.10', False);
XMLFileWriteValue(ExpandConstant('{#SetupSetting("DefaultDirName")}\Paths.xml'), 'Root\Paths\Path', 'sd,hd', './res/packages/vehicles_level_07.pkg', False);
XMLFileWriteValue(ExpandConstant('{#SetupSetting("DefaultDirName")}\Paths.xml'), 'Root\Paths\Path', 'sd,hd', './res/packages/vehicles_level_08.pkg', False);
XMLFileWriteValue(ExpandConstant('{#SetupSetting("DefaultDirName")}\Paths.xml'), 'Root\Paths\Path', 'sd,hd', './res/packages/vehicles_level_09.pkg', False);
XMLFileWriteValue(ExpandConstant('{#SetupSetting("DefaultDirName")}\Paths.xml'), 'Root\Paths\Path', 'sd,hd', './res/packages/vehicles_level_10.pkg', False);
сохраняется только последняя строка
 

Хамик

Старожил
Никак не могу понять как записать такое:
Код:
<Version>11</Version>
<AutoStart>false</AutoStart>
<CheckForUpdate>false</CheckForUpdate>
<Fum>false</Fum>
<Language>Russian</Language>
<CurrentRectSettingsIndex>-1</CurrentRectSettingsIndex>
 

YURSHAT

Тех. админ
Администратор
Никак не могу понять как записать такое:
Код:
XMLFileWriteValue(ExpandConstant('{src}\xmlfile.xml'), 'Version', '', '11', False);
XMLFileWriteValue(ExpandConstant('{src}\xmlfile.xml'), 'AutoStart', '', 'false', False);
XMLFileWriteValue(ExpandConstant('{src}\xmlfile.xml'), 'CheckForUpdate', '', 'false', False);
XMLFileWriteValue(ExpandConstant('{src}\xmlfile.xml'), 'Fum', '', 'false', False);
XMLFileWriteValue(ExpandConstant('{src}\xmlfile.xml'), 'Language', '', 'Russian', False);
XMLFileWriteValue(ExpandConstant('{src}\xmlfile.xml'), 'CurrentRectSettingsIndex', '', '-1', False);
 

Хамик

Старожил
Подскажите, как изменить значение "ru"?
Код:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <Settings>
        <My.Settings>
             <setting name="lang" serializeAs="String">
                <value>ru</value>
            </setting>
        </My.Settings>
    </Settings>
</configuration>
 

Хамик

Старожил
Задача немного усложнилась. После перезапуска программы получается вот такой формат:
Код:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <Settings>
        <My.Settings>
            <setting name="path" serializeAs="String">
                <value>S</value>
            </setting>
            <setting name="created" serializeAs="String">
                <value>L</value>
            </setting>
            <setting name="name" serializeAs="String">
                <value>S</value>
            </setting>
             <setting name="lang" serializeAs="String">
                <value>ru</value>
            </setting>
        </My.Settings>
    </Settings>
</configuration>
XMLFileChangeValue меняет первое значение. Как изменить определенное значение в таком файле?
 
Сверху