XmlNodeGetChildren
Jump to navigation
Jump to search
This function returns all children of a particular XML node, or a particular child node.
Syntax
table/xmlnode xmlNodeGetChildren ( xmlnode parent, [ int index ] )
Required Arguments
- parent: This is the xmlnode you want to retrieve one or all child nodes of.
Optional Arguments
- index: 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
If index isn't specified, returns a table containing all child nodes. If index is specified, returns the corresponding child node if it exists. Returns false in case of failure.
Example
Click to collapse [-]
ServerSuppose 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(getThisResource()),
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
)
See Also
- xmlCopyFile
- xmlCreateChild
- xmlCreateFile
- xmlDestroyNode
- xmlFindChild
- xmlLoadFile
- xmlLoadString
- xmlNodeGetAttribute
- xmlNodeGetAttributes
- xmlNodeGetChildren
- xmlNodeGetName
- xmlNodeGetParent
- xmlNodeGetValue
- xmlNodeSetAttribute
- xmlNodeSetName
- xmlNodeSetValue
- xmlSaveFile
- xmlUnloadFile