XmlNodeSetAttribute: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(Fix oop syntax)
 
(11 intermediate revisions by 8 users not shown)
Line 5: Line 5:
==Syntax==  
==Syntax==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
bool xmlNodeSetAttribute ( xmlnode xmlnode, string name, var value )             
bool xmlNodeSetAttribute ( xmlnode node, string name, string/float value )             
</syntaxhighlight>  
</syntaxhighlight>  
{{OOP||[[xmlnode]]:setAttribute||xmlNodeGetAttribute}}


===Required Arguments===  
===Required Arguments===  
*'''xmlnode:''' The node in which you wish to edit the attribute.
*'''node:''' The node of which you wish to edit an attribute.
*'''name:''' The name of the attribute.
*'''name:''' The name of the attribute.
*'''value:''' The value which you wish to change the attribute to.
*'''value:''' The value which you wish to change the attribute to. ('''Note:''' ''nil'' will delete the attribute)


===Returns===
===Returns===
Returns ''true'' if edit was successful, ''false'' if the node and/or attribute do not exist, or if they're faulty.
Returns ''true'' if the attribute was set successfully, ''false'' if the node and/or attribute do not exist, or if they're faulty.


==Example==
==Example==
In a gamemode, we want a command to change the marker color in the configuration file.
<section name="Server" class="server" show="true">
In a gamemode, we want a command to change the marker color in the configuration file and remove a deprecated attribute.


config.xml:
config.xml:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<config>
<config>
     <markers color="255,100,0" />
     <markers color="255,100,0" foo="deprecated" />
</config>
</config>
</syntaxhighlight>
</syntaxhighlight>
Line 28: Line 30:
Lua code:
Lua code:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
config = xmlLoadFile("config.xml")


function changeConfigMarkerColor(player, command, r, g, b)
function changeConfigMarkerColor(thePlayer, command, r, g, b)
     markernode = xmlFindSubNode(config, "markers", 0)
     local config = xmlLoadFile("config.xml")
    local markernode = xmlFindChild(config, "markers", 0)
     xmlNodeSetAttribute(markernode, "color", r .. "," .. g .. "," .. b)
     xmlNodeSetAttribute(markernode, "color", r .. "," .. g .. "," .. b)
    xmlNodeSetAttribute(markernode, "foo", nil) -- remove 'foo' attribute
    xmlSaveFile(config)
    xmlUnloadFile(config)
end
end
addCommandHandler("markercolor", changeConfigMarkerColor)
addCommandHandler("markercolor", changeConfigMarkerColor)
</syntaxhighlight>
</syntaxhighlight>
 
</section>
 
Note that this example only changes the in-memory XML document. If you want to save the changed document back to the hard drive, use [[xmlSaveFile]].


==See Also==
==See Also==
{{FunctionArea_Functions}}
{{XML_functions}}
{{XML_functions}}
[[Category:Incomplete]]
[[ru:xmlNodeSetAttribute]]

Latest revision as of 14:50, 6 August 2016

This function is used to edit an attribute of a node in a configuration file.

Syntax

bool xmlNodeSetAttribute ( xmlnode node, string name, string/float value )             

OOP Syntax Help! I don't understand this!

Method: xmlnode:setAttribute(...)
Counterpart: xmlNodeGetAttribute


Required Arguments

  • node: The node of which you wish to edit an attribute.
  • name: The name of the attribute.
  • value: The value which you wish to change the attribute to. (Note: nil will delete the attribute)

Returns

Returns true if the attribute was set successfully, false if the node and/or attribute do not exist, or if they're faulty.

Example

Click to collapse [-]
Server

In a gamemode, we want a command to change the marker color in the configuration file and remove a deprecated attribute.

config.xml:

<config>
    <markers color="255,100,0" foo="deprecated" />
</config>

Lua code:


function changeConfigMarkerColor(thePlayer, command, r, g, b)
    local config = xmlLoadFile("config.xml")
    local markernode = xmlFindChild(config, "markers", 0)
    xmlNodeSetAttribute(markernode, "color", r .. "," .. g .. "," .. b)
    xmlNodeSetAttribute(markernode, "foo", nil) -- remove 'foo' attribute
    xmlSaveFile(config)
    xmlUnloadFile(config)
end
addCommandHandler("markercolor", changeConfigMarkerColor)

See Also