XML.au3 ( formerly XMLWrapperEx.au3 ) 1.1.1.11

   (0 reviews)

1 Screenshot

About This File

I was asking @eltorro serveral times for any support  for XML DOM wrapper (COM) - with no success :( 

 

 
So I took matters into my hands .....

I want to present _XMLDomWrapperEx.au3 - BETA Version

Want to join to the project ?

 

Here is some description:

; #INDEX# =======================================================================================================================
; Title .........: _XMLDomWrapperEx.au3
; AutoIt Version : 3.3.10.2++
; Language ......: English
; Description ...: Functions to use for reading and writing XML using msxml.
; Remarks .......: BETA Version
; Author ........: mLipok
; Version .......: "1.1.1.01" ; _XML_MiscProperty_UDFVersion()

#cs
    This UDF is created on the basis of:
    https://www.autoitscript.com/forum/topic/19848-xml-dom-wrapper-com/
    For this reason, I attach also the last known (to me) previous version ($_XMLUDFVER = "1.0.3.98"  _XMLDomWrapper_1.0.3.98_CN.au3 )
    For the same reason I continue to recognize the achievements of the work of my predecessors (they are still noted in each Function header).
    .
    .
    .
    . !!!!!!!!! This is BETA VERSION (all could be changed) !!!!!!!!!
    .
    .
    .
    WORK IN PROGRES INFORMATION:
    For now 2015-09-01 the descripion (Function Header) can not entirely correctly describe the function.
    TODO: in many places I used "TODO" as a keyword to find what should be done in future
    .
    I want to: PREVENT THIS:
    The unfortunate nature of both the scripts is that the func return results are strings or arrays instead of objects.
    .
    I want to: USE THIS CONCEPT:
    .   All function should use Refernce to the object as first Function parameter
    .   All function should return in most cases objects. There should be separate functions to Change Object collection to array
    .   All function should use COM Error Handler in local scope.
    .   All function should return @error which are defined in #Region _XMLDomWrapperEx.au3 - @ERROR Enums
    .    All function should have the same naming convention
    .    All variables should have the same naming convention
    .    There should not to be any Global Variable - exception is $g__oXMLDOM_Events
    .   It should be possible easy to use XML DOM Events
    .        https://msdn.microsoft.com/en-us/library/ms764697(v=vs.85).aspx
    .   It should be possible easy to Debug
    .    Ultimately, you should be able to do anything with your XML without having to use your own Error Handler.

#CE

 

More info inside zip archive.

 

Here is the support topic:


What's New in Version 1.1.1.11

Released

new version:

Quote

    2016/06/16
    "1.1.1.11"

    . NEW: Function: __XML_IsValidObject_DOMDocumentOrElement - mLipok
    . Changed: Function: _XML_SelectNodes - parameter validation __XML_IsValidObject_DOMDocumentOrElement - mLipok
    .         Currently _XML_SelectNodes can use relative XPath
    . Changed: Function: _XML_SelectSingleNode - parameter validation __XML_IsValidObject_DOMDocumentOrElement - mLipok
    .         Currently _XML_SelectSingleNode can use relative XPath
    . Refactored: Function: _XML_CreateComment - mLipok
    . Changed: Function: @error > $XML_ERR_COMERROR - mLipok
    . Fixed: Function: _XML_Array_GetNodesProperties - properly gets all attributes - mLipok
    .
    . EXAMPLES: New, and checked/refactored/fixed
    .    XML__Examples_TIDY.au3
    .    XML__Examples_User__asdf1nit.au3
    .    XML__Examples_User_coma.au3
    .    XML__Examples_User_Realm.au3
    .    XML__Examples_User_scila1996.au3
    .    XML__Examples_User_DarkAqua__Tasks.au3
 

2016/05/18
"1.1.1.10"

. NEW: Feature: _XML_Tidy:   if Parameter $sEncoding = -1 then .omitXMLDeclaration = true - mLipok
.            Feature asked by @GMK here:
.           https://www.autoitscript.com/forum/topic/176895-xmlau3-v-11109-formerly-xmlwrapperexau3-beta-support-topic/?do=findComment&comment=1294688
. Changed: _XML_Tidy(ByRef $oXmlDoc, $sEncoding = -1) - Default value is set to -1
. New:    XML__Example_TIDY.au3

 

2016/05/18
"1.1.1.09"

. !!!! UDF RENAMED XMLWrapperEx.au3 >> XML.au3 - mLipok
. Changed: Error Handling: all SetError($XML_ERR_NODEAPPEND, - returns @error as extended - as this is COM ERROR - mLipok
. Changed: Error Handling: all SetError($XML_ERR_NODECREATE, - returns @error as extended - as this is COM ERROR - mLipok
. Removed: Function: _XMLCreateChildNode - as it was duplicate feature with _XML_CreateChildWAttr - mLipok
.        Thanks to: @scila1996
.       https://www.autoitscript.com/forum/topic/176895-xmlwrapperexau3-beta/?do=findComment&comment=1278825
. Removed: Function: _XMLCreateChildNodeWAttr - as it was only duplicate/wrapper for _XML_CreateChildWAttr - mLipok
.        Thanks to: @scila1996
.       https://www.autoitscript.com/forum/topic/176895-xmlwrapperexau3-beta/?do=findComment&comment=1278825
. ! EXAMPLES FILE: Modified: XML_My_ErrorParser - mLipok
. ! EXAMPLES FILE: New: Example_2a__XML_CreateChildWAttr() - mLipok
. Removed: Enums: $XML_ERR_SAVEFILERO - New Requirment for saving - File Can Not Exist - user should manage it by their own - mLipok
. Renamed: Enums: $XML_ERR_ISNOTVALIDNODESE >> $XML_ERR_ISNOTVALIDNODETYPE - mLipok
. Renamed: Enums: $XML_ERR_ISNOTVALIDNODETYPE >> $XML_ERR_INVALIDNODETYPE - mLipok
. Renamed: Enums: $XML_ERR_ISNOTVALIDATTRIB >> $XML_ERR_INVALIDATTRIB - mLipok
. Renamed: Enums: $XML_ERR_ISNOTVALIDDOMDOC >> $XML_ERR_INVALIDDOMDOC - mLipok
. Removed: $XML_EXT_GENERAL >> $XML_EXT_DEFAULT - mLipok
. Changed: $XML_EXT_.. are reordered - mLipok
. Removed: Function: _XSL_GetDefaultStyleSheet - mLipok
.    This was example from:
.   http://www.xml.com/lpt/a/1681
.    But it is: Copyright © 1998-2006 O'Reilly Media, Inc.
. Renamed: Function: _XMLGetField >> _XML_GetField - mLipok
. Renamed: Function: _XMLGetValue >> _XML_GetValue - mLipok
. Renamed: Function: _XMLGetAllAttrib >> _XML_GetAllAttrib - mLipok
. Renamed: Function: _XMLSetAttrib >> _XML_SetAttrib - mLipok
. New: Function: _XML_InsertChildNode - GMK
. New: Function: _XML_InsertChildWAttr - GMK
. Changed: Function: _XML_CreateAttribute - numbers of parameters - mLipok
.            now you must pass an Array with AttributeName and AttributeValue
. Fixed: Function: _XMLCreateRootNode - GMK
.        $oXmlDoc.documentElement.appendChild($oChild) >> $oXmlDoc.appendChild($oChild)
. Fixed: Function: _XMLCreateRootNodeWAttr - GMK
.        $oXmlDoc.documentElement.appendChild($oChild_Node) >> $oXmlDoc.appendChild($oChild_Node)
. Renamed: Function: _XMLCreateRootChild >> _XML_CreateRootNode - GMK
.            !!!!!!!! @TODO need to be revisited
.
. Renamed: Function: _XMLCreateRootNodeWAttr >> _XML_CreateRootNodeWAttr - GMK
. ADDED: #CURRENT# - GMK
. ADDED: #IN_PROGESS# - GMK
. ADDED: #INTERNAL_USE_ONLY# - GMK
.         !!! Additional Thanks for GMK for testing and many changes in many Description
. CleanUp: Function: _XML_GetNodesPath - removed $sNodePathTag - mLipok - thanks to GMK
. CleanUp: Function: _XML_GetParentNodeName - removed $sNodePathTag - mLipok - thanks to GMK
. CleanUp: Function: removed #include <MsgBoxConstants.au3> - mLipok - thanks to GMK
. CleanUp: Function: _XML_GetField - removed $oChild - mLipok - thanks to GMK
. CleanUp: Function: _XML_GetNodesPath - MagicNumber 0 replaced with $STR_NOCASESENSE - mLipok - thanks to GMK
. CleanUp: Function: _XML_GetNodesPathInternal - MagicNumber 0 replaced with $STR_NOCASESENSE - mLipok - thanks to GMK
. CleanUp: Function: _XML_GetParentNodeName - MagicNumber 0 replaced with $STR_NOCASESENSE - mLipok - thanks to GMK
. Renamed: Function: _XMLCreateCDATA >> _XML_CreateCDATA - mLipok - thanks to GMK
. Rewrite: Function: _XML_GetAllAttrib - Parameters : removed ByRef $aName, ByRef $aValue - mLipok
. Fixed Typo: Descripton: Chceck >> Check - mLipok - thanks to GMK
. Added: Descripton: _XML_GetNodesCount - mLipok - thanks to GMK
. Changed: Descripton: _XML_TransformNode - mLipok - thanks to GMK
. Changed: Descripton: _XML_CreateDOMDocument - mLipok - thanks to GMK
. Added: Descripton: _XML_GetNodeAttributeValue - mLipok - thanks to GMK
. Changed: Descripton: _XML_Misc_Viewer - mLipok - thanks to GMK
.
. Changed: Function: _XML_SelectNodes in case of success @extended = $oNodesColl.length

 





User Feedback

You may only provide a review once you have downloaded the file.

There are no reviews to display.

  • Similar Content

    • ur
      how to process xml files
      By ur
      Any internal xml API to parse and edit XML files in AutoIT?
    • FMS
      XML search get change settings.
      By FMS
      Hello ,
      I've the following problem and hope somebody can push me in the right direction or have a good example on how to do it.
      The problem is :I want to search / select / change /check a XML setting in a XML file.
      The example XML file is as following :
      <Configuration> <Categories> <Category Name="default"> <SubCategories> <SubCategory Name="defaultsettings"> <Settings> <Setting Name="machinename" TypeName="System.String" Value="defaultname" /> <Setting Name="cpuspeed" TypeName="System.String" Value="false" /> <Setting Name="cmptemp" TypeName="System.String" Value="false" /> <Setting Name="cmpspeed_set" TypeName="System.String" Value="" /> <Setting Name="cmptemp_set" TypeName="System.String" Value="" /> </Settings> </SubCategory> </SubCategories> </Category> <Category Name="settings"> <SubCategories> <SubCategory Name="comp1"> <Settings> <Setting Name="machinename" TypeName="System.String" Value="comp1" /> <Setting Name="cpuspeed" TypeName="System.String" Value="true" /> <Setting Name="cmptemp" TypeName="System.String" Value="false" /> <Setting Name="cmpspeed_set" TypeName="System.String" Value="12" /> <Setting Name="cmptemp_set" TypeName="System.String" Value="" /> </Settings> </SubCategory> <SubCategory Name="comp2"> <Settings> <Setting Name="machinename" TypeName="System.String" Value="comp2" /> <Setting Name="cpuspeed" TypeName="System.String" Value="false" /> <Setting Name="cmptemp" TypeName="System.String" Value="true" /> <Setting Name="cmpspeed_set" TypeName="System.String" Value="" /> <Setting Name="cmptemp_set" TypeName="System.String" Value="9" /> </Settings> </SubCategory> </SubCategories> </Category> </Categories> </Configuration> In this XML file I want to :
      -search if subcategory whit the name "comp3" exists
      -if exist change of setting "cpuspeed" value to false
      -if not exist make a new subcategory "comp3" whit the default settings from subcategory "default settings"
      what i have this far is :
      Func xml_test1() Dim $return[0] Local $file = @ScriptDir & "\test.xml" FileOpen($file, $FO_READ) _FileReadToArray($file,$return) FileClose($file) msg("",$return[28]) msg("",$return[29]) EndFunc func xml_test2() Local $file = @ScriptDir & "\test.xml" Local $oXML = ObjCreate("Microsoft.XMLDOM") ;~ $oXML.load("D:\___BUILDS___\___SRMT___\test.xml") $oXML.load($file) $oOther= $oXML.SelectSingleNode("//Configuration/Categories/Category/SubCategories/SubCategory/Settings/Setting") ; or //other ConsoleWrite("$oOther.text=[" & $oOther.text & "]" & @CRLF) EndFunc i know it is not enough what I'm trying to do but I'm realy stuk in what to do next.
      I've searched in the XML.udf but could not find in the examples what to do what i want to do.
      The things what i found are about <settings>false</settings> writing style of XML and not the way I've the XML.
      (or I'm reading it wrong)
      Is there somebody who can help me on mine way or has a good example script?
      Thanks in advanced
       
    • mLipok
      HTML Entities
      By mLipok
      Today I was working on some Webservices UDF.
      As a result I get this kind of data:
      I was searching here:
      http://www.htmlhelp.com/reference/html40/entities/special.html
      http://www.html-entities.org/
      http://www.w3schools.com/html/html_entities.asp
       

      But finally I made this:
      #include <IE.au3> _Example() Func _Example() Local $sHTML = _ '&lt;root&gt;&#xD;&lt;Data&gt;&#xD;&lt;Type&gt;F&lt;/Type&gt;&#xD;&lt;/Data&gt;&#xD;&lt;/root&gt;' MsgBox(0, 'TEST', _HTML_DecodeEntities($sHTML)) EndFunc ;==>_Example Func _HTML_DecodeEntities(ByRef $sHTML) $sHTML = StringReplace($sHTML,'&#xD;','<hr>') Local $oIE = _IECreate("about:blank", 0, 0, 1, 0) _IEDocWriteHTML($oIE, $sHTML) Local $sResult = _IEBodyReadText($oIE) _IEQuit($oIE) Return $sResult EndFunc ;==>_HTML_DecodeEntities  
      Regards,
      mLipok
    • mLipok
      XML.au3 v 1.1.1.10 ( formerly XMLWrapperEx.au3 ) - BETA - Support Topic
      By mLipok
      I was asking @eltorro serveral times for any support  for XML DOM wrapper (COM) - with no success  
          So I took matters into my hands ..... I want to present XMLWrapperEx.au3 - BETA Version
      Want to join to the project ?
       
      Here is some description:
      ; #INDEX# ======================================================================================================================= ; Title .........: XMLWrapperEx.au3 ; AutoIt Version : 3.3.10.2++ ; Language ......: English ; Description ...: Functions to use for reading and writing XML using msxml. ; Remarks .......: BETA Version ; Author ........: mLipok ; Version .......: "1.1.1.01" ; _XML_MiscProperty_UDFVersion() #CS This UDF is created on the basis of: https://www.autoitscript.com/forum/topic/19848-xml-dom-wrapper-com/ For this reason, I attach also the last known (to me) previous version ($_XMLUDFVER = "1.0.3.98" _XMLDomWrapper_1.0.3.98_CN.au3 ) For the same reason I continue to recognize the achievements of the work of my predecessors (they are still noted in each Function header). . . . . !!!!!!!!! This is BETA VERSION (all could be changed) !!!!!!!!! . . . WORK IN PROGRES INFORMATION: For now 2015-09-01 the descripion (Function Header) can not entirely correctly describe the function. TODO: in many places I used "TODO" as a keyword to find what should be done in future . I want to: PREVENT THIS: The unfortunate nature of both the scripts is that the func return results are strings or arrays instead of objects. .     I want to: USE THIS CONCEPT:     .   All function should use Refernce to the object as first Function parameter     .   All function should return in most cases objects. There should be separate functions to Change Object collection to array     .   All function should use COM Error Handler in local scope.     .   All function should return @error which are defined in #Region XMLWrapperEx.au3 - @ERROR Enums     .    All function should have the same naming convention     .    All variables should have the same naming convention     .    There should not to be any Global Variable - exception is $g__oXMLDOM_Events     .   It should be possible easy to use XML DOM Events     .        https://msdn.microsoft.com/en-us/library/ms764697(v=vs.85).aspx     .   It should be possible easy to Debug     .    Ultimately, you should be able to do anything with your XML without having to use your own Error Handler. #CE  
      More info inside zip archive.
      This UDF can be downloaded from here:

       
    • coles
      what is the best way to compare files
      By coles
      What i am trying to do is compare date of destination and source, and if source file is newer than destination it copies the file to source.
      Just posting a sample code of what i am trying to achieve
       
      #include <Date.au3> ; Include Date constants #include <File.au3> #include <iNet.au3> #include <_XMLDomWrapper.au3> Global $xml1, $xml1monthday, $xml1year, $xml1format, $xml2, $xml2monthday, $xml2year, $xml2format, $xmldate ; Runs the XmlDate() function to determine the age of the Xml file ;===================================================================== XmlDate() Func XmlDate() $Xml1 = RegRead("C:\Temp\m1.xml","XmlDate") ; pulls registry $xml1monthday = StringTrimRight($xml1, 5) ; takes the month $xml1year = StringTrimLeft($xml1, 6) ; takes the year out $xml1format = ($xml1monthday & "/" & $xml1year) ; reorders the date $Xml2 = RegRead("C:\Temp\m2.xml","XmlDate") ; pulls registry $xml2monthday = StringTrimRight($xml2, 5) ; takes the month and $xml2year = StringTrimLeft($xml2, 6) ; takes the year out $xml2format = ($xml2monthday & "/" & $xml2year) ; reorders if $Xml1 = "" And $Xml2 = "" Then FileCopy( "C:\temp\a1.txt", "C:\temp\anokh", 1); Else FileDelete("c:\temp\a1/txt") EndIf EndFunc  
       
      Any comments will be appreciated 
      Thank you