xmlNodeGetChildren | Multi Theft Auto: Wiki Skip to content

xmlNodeGetChildren

Client-side
Server-side
Shared

This function returns all children of a particular XML node, or a particular child node.

OOP Syntax Help! I don't understand this!

  • Method: xmlnode:getChildren(...)
  • Variable: .children

Syntax

table|xmlnode|false xmlNodeGetChildren ( xmlnode parentNode, [ int index = nil ] )
Required Arguments
  • parentNode: This is an xmlnode that you want to find the child node under.
Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use.

  • index (default: nil): If you only want to retrieve one particular child node, specify its (0-based) index here. For example if you only want the first node, specify 0; the fifth node has index 4, etc.

Returns

  • table|xmlnode|false: children

If index isn't specified, returns a table containing all child nodes. If index is specified, returns the corresponding child node if it exists. If no nodes are found, it returns an empty table. Returns false in case of failure.

Code Examples

server

Suppose you have an .xml file with random welcome messages:

<messages>
<message>Welcome to the deathmatch server, enjoy your stay.</message>
<message>Welcome. Be sure to get your free pizza at Matt's!</message>
<message>Party going on at the LS beach, be there</message>
</messages>

To show a random message from this list to joining players, you could use the following code:

addEventHandler("onResourceStart", getResourceRootElement(),
function()
local xml = xmlLoadFile("welcome.xml") -- open the XML file
local messageNodes = xmlNodeGetChildren(xml) -- get all child nodes of the root node (<messages>)
g_WelcomeMessages = {} -- create a new global variable to store the welcome messages
for i,node in ipairs(messageNodes) do -- loop over all the message nodes
g_WelcomeMessages[i] = xmlNodeGetValue(node) -- retrieve the text in each node
end
xmlUnloadFile(xml) -- close the XML file
end
)
addEventHandler("onPlayerJoin", getRootElement(),
function()
local numMessages = #g_WelcomeMessages -- get the number of messages
local message = g_WelcomeMessages[math.random(numMessages)] -- pick a random message
outputChatBox(message, source, 0, 255, 0) -- display it to the joining player
end
)