XmlCreateFile: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
(fixed example)
 
(23 intermediate revisions by 13 users not shown)
Line 2: Line 2:
{{Server client function}}
{{Server client function}}
This function creates a new XML document, which can later be saved to a file by using [[xmlSaveFile]]. This function will overwrite the file specified if it already exists.
This function creates a new XML document, which can later be saved to a file by using [[xmlSaveFile]]. This function will overwrite the file specified if it already exists.
 
{{Note|To prevent memory leaks, ensure each call to [[xmlCreateFile]] has a matching call to [[xmlUnloadFile]]}}
{{Tip|If you do not want to share the content of the created file with other servers, prepend the file path with @ (See [[filepath]] for more information)}}
==Syntax==  
==Syntax==  
<section name="Server" class="server" show="true">
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
xmlnode xmlCreateFile ( string filename, string rootNodeName, [ resource inResource = getThisResource() ] )
xmlnode xmlCreateFile ( string filePath, string rootNodeName )
</syntaxhighlight>  
</syntaxhighlight>  
 
{{OOP||[[Xml|XML]]}}
===Required Arguments===  
===Required Arguments===  
*'''filename:''' the [[filepath]] of the XML file you wish to create.
*'''filePath:''' The [[filepath]] of the file in the following format: '''":resourceName/path"'''. 'resourceName' is the name of the resource the file will be in, and 'path' is the path from the root directory of the resource to the file.
:For example, if you want to create a file named 'new.xml' in the resource 'ctf', it can be created from another resource this way: ''xmlCreateFile(":ctf/new.xml", "newroot")''.
:If the file is in the current resource, only the file path is necessary, e.g. ''xmlCreateFile("new.xml", "newroot")''.
:Note that if a different resource than default is being accessed, the caller resource needs access to general.ModifyOtherObjects in the [[ACL]].
*'''rootNodeName:''' the name of the root node in the XML document.
*'''rootNodeName:''' the name of the root node in the XML document.


===Optional Arguments===
===Returns===
{{OptionalArg}}
Returns the root [[xmlnode]] object of the new XML file if successful, or ''false'' otherwise.
*'''inResource:''' the [[resource]] whose directory will be used as the root for the filename specified. Note that if a different resource than default is being accessed, the caller resource needs access to general.ModifyOtherObjects in the [[ACL]].
</section>


<section name="Client" class="client" show="true">
==Example==
This example allows a player to use the command 'createfile' to create an .xml file.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
xmlnode xmlCreateFile ( string filename, string rootNodeName )
-- Creates a file named "new.xml" with root node "newroot" and childnode "newchild".
</syntaxhighlight>
function createFileHandler()
  local rootNode = xmlCreateFile("new.xml","newroot")
  local childNode = xmlCreateChild(rootNode, "newchild")
  xmlSaveFile(rootNode)
  xmlUnloadFile(rootNode)
end


===Required Arguments===
addCommandHandler("createfile", createFileHandler)
*'''filename:''' The name of the XML file you wish to create.  This is a path relative to the clientside root folder of the resource found in your MTA San Andreas installation directory.
</syntaxhighlight>
*'''rootNodeName:''' The name of the root node in the XML document.
</section>
 
===Returns===
Returns the root [[xmlnode]] object of the new XML file if successful, or ''false'' otherwise.


==See Also==
==See Also==
{{XML_functions}}
{{XML_functions}}
 
[[ru:xmlCreateFile]]
[[Category:Needs Example]]

Latest revision as of 15:53, 27 March 2018

This function creates a new XML document, which can later be saved to a file by using xmlSaveFile. This function will overwrite the file specified if it already exists.

[[{{{image}}}|link=|]] Note: To prevent memory leaks, ensure each call to xmlCreateFile has a matching call to xmlUnloadFile
[[{{{image}}}|link=|]] Tip: If you do not want to share the content of the created file with other servers, prepend the file path with @ (See filepath for more information)

Syntax

xmlnode xmlCreateFile ( string filePath, string rootNodeName )

OOP Syntax Help! I don't understand this!

Method: XML(...)


Required Arguments

  • filePath: The filepath of the file in the following format: ":resourceName/path". 'resourceName' is the name of the resource the file will be in, and 'path' is the path from the root directory of the resource to the file.
For example, if you want to create a file named 'new.xml' in the resource 'ctf', it can be created from another resource this way: xmlCreateFile(":ctf/new.xml", "newroot").
If the file is in the current resource, only the file path is necessary, e.g. xmlCreateFile("new.xml", "newroot").
Note that if a different resource than default is being accessed, the caller resource needs access to general.ModifyOtherObjects in the ACL.
  • rootNodeName: the name of the root node in the XML document.

Returns

Returns the root xmlnode object of the new XML file if successful, or false otherwise.

Example

This example allows a player to use the command 'createfile' to create an .xml file.

-- Creates a file named "new.xml" with root node "newroot" and childnode "newchild".
function createFileHandler()
   local rootNode = xmlCreateFile("new.xml","newroot")
   local childNode = xmlCreateChild(rootNode, "newchild")
   xmlSaveFile(rootNode)
   xmlUnloadFile(rootNode)
end

addCommandHandler("createfile", createFileHandler)

See Also