XmlNodeSetAttribute: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (Added notes about removing attributes and improved example code)
m (Removed deprecated note about xmlSaveFile)
Line 41: Line 41:
addCommandHandler("markercolor", changeConfigMarkerColor)
addCommandHandler("markercolor", changeConfigMarkerColor)
</syntaxhighlight>
</syntaxhighlight>
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]].
</section>
</section>



Revision as of 22:40, 24 March 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(...)


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