XML.SetAttributeValue
Revision as of 07:51, 28 June 2021 by 1>Admin (→Аргументы)
SetAttributeValue (Работа с атрибутами ветки) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция используется совместно с объектом ветки XML и изменяет значение атрибута текущей ветки по его индексу или наименованию. Наименования атрибутов ищутся с учетом регистра. Если в искомом имени не задано пространство имен, ищется атрибут с любым пространством имен с совпадающим именем. Чтобы форсировать поиск атрибутов без пространств имен в этом случае, необходимо указать в искомом имени пустое пространство имен (:<Имя атрибута>
). Если атрибут не найден, будет вызвано исключение.
Синтаксис
XML.SetAttributeValue(<Индекс или имя атрибута с или без пространства имен (INT,STRING)>,<Значение атрибута (STRING)>)
Аргументы
<Индекс или имя атрибута с или без пространства имен (INT,STRING)>
- Аргумент задает индекс или имя требуемого атрибута. Формат имени влияет на то, будут ли при поиске учитываться пространства имен. Формат может быть следующим:- аргумент имеет числовое значение -- будет изменено значение атрибута с указанным индексом. Индексирование начинается с единицы.
- имя атрибута без пространства имен (к примеру, tag) -- поиск будет происходить для имен атрибутов с любым пространством имен или без пространства имен вообще (т.е. для tag будут найдены tag, ns1:tag и т.п.).
- имя атрибута с пространством имен (к примеру, ns1:tag) -- поиск будет происходить для имен атрибутов с указанным пространством имен (т.е. для ns1:tag не будут найдены tag, ns2:tag и т.п.).
- имя атрибута с пустым пространством имен (к примеру, :tag) -- поиск будет происходить для имен атрибутов без пространства имен, имена атрибутов с пространствами имен будут пропускаться при поиске (т.е. для :tag не будут найдены ns1:tag, ns2:tag и т.п.).
<Значение атрибута (STRING)>
- Аргумент задает новое значение атрибута. Важно: перед использованием функции, перекодируйте устанавливаемое значение с помощью функции EncodeXMLString.
Примеры
aObject:=XML.Create(); //Добавление особой ветки aObject.Text:="<?xml version=""1.0"" encoding=""UTF-8"" ?>"; //Позиционирование объекта ветки aNode:=aObject.Root; //Добавление обычной ветки aNode:=aNode.AddNode("data",,"var1='value1' ns:var2=""some text"" var2=""same name with different ns is allowed""",0); //Изменение значения текущей ветки (data) //Значение может содержать подчиненные ветки aNode.Value:="<subdata>text goes here...</subdata>"; //Будет выведено: "<?xml version="1.0" encoding="UTF-8" ?><data var1='value1' ns:var2="some text" var2="same name with different ns is allowed"><subdata>text goes here...</subdata></data>" Message(aObject.Text); //Изменение позиционирования aNode.Path:="<data>"; //Изменяем значение первого из атрибутов var2 aNode.SetAttributeValue("var2","new value goes here"); //Будет выведено: "<?xml version="1.0" encoding="UTF-8" ?><data var1='value1' ns:var2="new value goes here" var2="same name with different ns is allowed"><subdata>text goes here...</subdata></data>" Message(aObject.Text);