XmlNodeGetChildren: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
Line 26: | Line 26: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
To | To show a random message from this list to joining players, you could use the following code: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), | addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), |
Revision as of 11:46, 6 April 2008
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>) and put them in a global variable 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