Записать имя переменной или изменить значение в xml

xopek2007

Client
Регистрация
10.05.2013
Сообщения
101
Благодарностей
8
Баллы
18
Есть входные настройки:
XML:
<InputSettings><InputSetting><Name>добавить ссылку</Name><Value></Value><OutputVariable></OutputVariable><Type>Label</Type><Help></Help></InputSetting><InputSetting><Name>Ссылка</Name><Value>https://www.google.com</Value><OutputVariable>{-Variable.urlnew-}</OutputVariable><Type>Text</Type><Help></Help></InputSetting></InputSettings>
Пытаюсь записать их в файл, экшином "Работа с файлами", но вместо имени переменной получаю ее значение.
xml.JPG
Может есть кокой способ побороть эту проблему?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113

xopek2007

Client
Регистрация
10.05.2013
Сообщения
101
Благодарностей
8
Баллы
18
Попробовал так \{\-Variable\.urlnew\-\} не работает:(
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
через кубик не получиться, там макросы автоматически срабатывают. даже если просто текст в переменной будет, он попытается выполнить макрос.
надо через c# делать.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 767
Благодарностей
2 414
Баллы
113
Не помню, как именно правильно формировать XML, но, можно его сформировать и строками.
Пример, который сформирует XML и сохранит его в файл по указанному пути.
C#:
string path = @"c:/temp.txt"; // Путь к файлу
string m_name = "urlnew"; // Имя переменной, которую собрались подставить
string macros_name = string.Join(string.Empty, new[]{"{", string.Format("-Variable.{0}-",m_name), "}"});

// Узлы xml
string Name = "<Name>{0}</Name>";
string Value = "<Value>{0}</Value>";
string OutputVariable = "<OutputVariable>{0}</OutputVariable>";
string Type ="<Type>{0}</Type>";
string Help = "<Help>{0}</Help>";
string InputSetting = @"<InputSetting>{0}</InputSetting>";
string InputSettings = @"<InputSettings>{0}</InputSettings>";

// Подставляем значения (справа)
List<string[]> list = new List<string[]>();
list.Add(new[] {
    string.Format(Name, "добавить ссылку"),
    string.Format(Value, string.Empty),
    string.Format(OutputVariable, string.Empty),
    string.Format(Type, "Label"),
    string.Format(Help,string.Empty)
});

list.Add(new[] {
    string.Format(Name,"Ссылка"),
    string.Format(Value,"https://www.google.com"),
    string.Format(OutputVariable, macros_name),
    string.Format(Type,"Text"),
    string.Format(Help, string.Empty)
});
// Одеваем в InputSetting и InputSettings
string xml = string.Format(InputSettings, string.Join(string.Empty, list.Select(x => string.Format(InputSetting, string.Join(string.Empty, x)))));

File.WriteAllText(path, xml); // Перезаписываем файл
 
  • Спасибо
Реакции: kul0n и xopek2007

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)