NsisXML plug-in (by Wizou): Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
(Added "insertBefore")
(Warned users of the memory leaks,)
Line 1: Line 1:
{{PageAuthor|Wizou}}
{{PageAuthor|Wizou}}


'''NOTE:''' The name of this plug-in conflicts with [[User:Joel|Joel]]'s [[NsisXML- A XML parser for NSIS|nsisXML]].
== WARNINGS!!! ==
 
# The name of this plug-in conflicts with [[User:Joel|Joel]]'s [[NsisXML- A XML parser for NSIS|nsisXML]].
# It is a known issue that MEMORY IS NOT CORRECTLY RELEASED after using this plugin. (and this probably wont be corrected) It usually won't matter much if you deal with small XML files, but '''if memory leaks is a bad issue for you, then don't use nsisXML'''.
 


== Links ==
== Links ==

Revision as of 15:50, 5 September 2006

Author: Wizou (talk, contrib)


WARNINGS!!!

  1. The name of this plug-in conflicts with Joel's nsisXML.
  2. It is a known issue that MEMORY IS NOT CORRECTLY RELEASED after using this plugin. (and this probably wont be corrected) It usually won't matter much if you deal with small XML files, but if memory leaks is a bad issue for you, then don't use nsisXML.


Links

nsisXML plug-in homepage

Description

nsisXML -- Small NSIS plugin to manipulate XML data through MSXML written by Olivier Marcoux

The following is taken from the readme file in the downloadable zip file:

You can typically use it to:
- create, read, modify, write XML files
- create, remove, search XML nodes
- set/get nodes content or attributes

Usage
-----
nsisXML::create
	creates an empty XML document in memory and returns its reference in $0 and $1

nsisXML::load <filename>
	load given XML file into document $0
	REQUIRES that an XML document be already created in $0
	(if XML document $0 is not empty, all content will be discarded)
	sets $0 to 0 if an error occurred

nsisXML::loadAndValidate <filename>
	same as load but performs validation on the XML if a schema is present, and
	resolves external definitions (may try to establish an Internet connection)

nsisXML::save <filename>
	saves current document $0 to given file

nsisXML::createProcessingInstruction <target> <data>
	creates a new 'processing instruction' node and return its reference in $2

nsisXML::createElement <tag name>
	creates a new element node with given tag name (initially empty) and return its
	reference in $2

nsisXML::appendChild
	appends node $2 as a child of node $1

nsisXML::insertBefore
	insert node $2 as a child of node $1, to the left of node $3
	($3 must be a reference to a child node of $1)

nsisXML::setAttribute <attribute name> <value>
	sets the given attribute with the given value on node $2

nsisXML::getAttribute <attribute name>
	returns in $3 the value for the given attribute name of node $2
	if attribute is not found, returns an empty string

nsisXML::setText <content text>
	sets the text content of the node $2 (<>the text between the tags</>)

nsisXML::getText
	returns in $3 the text content for node $2

nsisXML::select <XPath expression>
	find the first node matching the given XPath expression and return its
	reference in $1 and $2
	if not found, reference will be 0

nsisXML::parentNode
	returns in $1 the reference on the parent node of node $2

nsisXML::removeChild
	removes node $2 from the childs list of node $1

History

2006-03-22: Added "insertBefore" 2006-03-13: Modified "load". Added "loadAndValidation"