Go to the source code of this file.
| 
Functions | 
| CA_API UINT __stdcall | Xml_SelectNodeValue (MSIHANDLE hInstall) | 
|  | Select the text value of an xml node in a document. 
 | 
| CA_API UINT __stdcall | Xml_SelectNodeXml (MSIHANDLE hInstall) | 
|  | Select the XML value of a node in a document. 
 | 
| CA_API UINT __stdcall | Xml_SelectNodeAttributeValue (MSIHANDLE hInstall) | 
|  | Select the text value of an xml node attribute. 
 | 
| CA_API UINT __stdcall | Xml_XslTransform (MSIHANDLE hInstall) | 
|  | Transform an XML document with XSLT into a new XML document. 
 | 
| CA_API UINT __stdcall | Xml_DeleteNodes (MSIHANDLE hInstall) | 
|  | Delete an xml node in a document. 
 | 
Function Documentation
      
        
          | CA_API UINT __stdcall Xml_DeleteNodes | ( | MSIHANDLE | hInstall | ) |  | 
      
 
Delete an xml node in a document. 
- Parameters:
- 
  
    | XML_FILENAME | XML file |  | XML_XPATH | XPATH to select, if more than one node matches, all are deleted |  
 
- Returns:
- XML_DELETED set to the number of nodes deleted (0 if none) 
 
 
      
        
          | CA_API UINT __stdcall Xml_SelectNodeAttributeValue | ( | MSIHANDLE | hInstall | ) |  | 
      
 
Select the text value of an xml node attribute. 
- Parameters:
- 
  
    | XML_FILENAME | XML file |  | XML_XPATH | XPATH to select, if more than one node matches the first one only is used |  | XML_ATTRIBUTENAME | attribute name |  | XML_ATTRIBUTEVALUE | MSI property that contains the result after execution |  
 
 
 
      
        
          | CA_API UINT __stdcall Xml_SelectNodeValue | ( | MSIHANDLE | hInstall | ) |  | 
      
 
Select the text value of an xml node in a document. 
- Parameters:
- 
  
    | XML_FILENAME | XML file |  | XML_XPATH | XPATH to select, if more than one node matches the first one only is used |  | XML_NODEVALUE | MSI property that contains the result after execution |  
 
- Example:
Suppose that we're upgrading an existing product (OLDERVERSIONBEINGUPGRADED is defined somewhere in the MSI sequence), which has a configuration file called config\Config.xml. This file contains a Configuration node with Host and Port.
The following code declares the custom actions that will prepare the configuration parameters for the Xml_SelectNodeValue custom action. Each action must be named individually.
 <!-- set the filename to config\Config.xml -->
 <CustomAction Id="Xml_SetFileName" Property="XML_FILENAME" Value="[INSTALLDIR]\config\Config.xml" Execute="immediate" />
 <!-- select /Configuration/Host into the HOST property -->
 <CustomAction Id="Xml_SelectNodeValue_Host_XPath" Property="XML_XPATH" Value="/Configuration/Host" Execute="immediate" />
 <CustomAction Id="Xml_SelectNodeValue_Host" BinaryKey="XmlTools" DllEntry="Xml_SelectNodeValue" Execute="immediate" Return="check" />
 <CustomAction Id="Xml_GetNodeValue_Host" Property="HOST" Value="[XML_NODEVALUE]" Execute="immediate" />
 <!-- select /Configuration/Port into the PORT property -->
 <CustomAction Id="Xml_SelectNodeValue_Port_XPath" Property="XML_XPATH" Value="/Configuration/Port" Execute="immediate" />
 <CustomAction Id="Xml_SelectNodeValue_Port" BinaryKey="XmlTools" DllEntry="Xml_SelectNodeValue" Execute="immediate" Return="check" />
 <CustomAction Id="Xml_GetNodeValue_Port" Property="PORT" Value="[XML_NODEVALUE]" Execute="immediate" />
 <!-- custom action binary -->
 <Binary Id="XmlTools" SourceFile="$(var.BinDir)\XmlTools.dll" />
These custom actions are then inserted into InstallExecuteSequence. Once they are executed, two properties HOST and PORT are defined.
<InstallExecuteSequence>
 <Custom Action="Xml_SetFileName" After="FindRelatedProducts">OLDERVERSIONBEINGUPGRADED</Custom>      
 <!-- get /Configuration/Host -->
 <Custom Action="Xml_SelectNodeValue_Host_XPath" After="Xml_SetFileName">OLDERVERSIONBEINGUPGRADED</Custom>
 <Custom Action="Xml_SelectNodeValue_Host" After="Xml_SelectNodeValue_Host_XPath">OLDERVERSIONBEINGUPGRADED</Custom>
 <Custom Action="Xml_GetNodeValue_Port" After="Xml_SelectNodeValue_Host">OLDERVERSIONBEINGUPGRADED</Custom>
 <!-- get /Configuration/Port -->
 <Custom Action="Xml_SelectNodeValue_Port_XPath" After="Xml_GetNodeValue_Port">OLDERVERSIONBEINGUPGRADED</Custom>
 <Custom Action="Xml_SelectNodeValue_Port" After="Xml_SelectNodeValue_Port_XPath">OLDERVERSIONBEINGUPGRADED</Custom>
 <Custom Action="Xml_GetNodeValue_Port" After="Xml_SelectNodeValue_Port">OLDERVERSIONBEINGUPGRADED</Custom>
 ...
</InstallExecuteSequence>
 
 
      
        
          | CA_API UINT __stdcall Xml_SelectNodeXml | ( | MSIHANDLE | hInstall | ) |  | 
      
 
Select the XML value of a node in a document. 
- Parameters:
- 
  
    | XML_FILENAME | XML file |  | XML_XPATH | XPATH to select, if more than one node matches the first one only is used |  | XML_NODEXML | MSI property that contains the result after execution |  
 
 
 
      
        
          | CA_API UINT __stdcall Xml_XslTransform | ( | MSIHANDLE | hInstall | ) |  | 
      
 
Transform an XML document with XSLT into a new XML document. 
- Parameters:
- 
  
    | XML_FILENAME | XML file to transform |  | XSLT_FILENAME | XSLT file to use for the transform |  | XSLT_RESULT_FILENAME | file that will contain the transformed output |