Jump to content
Sign in to follow this  
fearless1

Help with some script

Recommended Posts

fearless1

Hi Guys,

 

I'm trying to pull some data from a range of XML files but am getting stuck. It is only returning blank results. My thought process was to:

a: Get a list of all the XML file names into an array;
b: Scroll through the array one by one and pull the relevant 4 values from the specified node.

This is my code:

#include <Array.au3>
#include <File.au3>
#include <MsgBoxConstants.au3>

$Workingdir = FileSelectFolder("Select the working folder", "C:\Files\")

    $i = 1
    Global $aFileList = _FileListToArray($Workingdir , "*.xml")

    If @error = 1 Then
        MsgBox($MB_SYSTEMMODAL, "", "Path was invalid.")
        Exit
    EndIf
    If @error = 4 Then
        MsgBox($MB_SYSTEMMODAL, "", "No file(s) were found.")
        Exit
    EndIf
    ; Display the results returned by _FileListToArray.

    $oXML = ObjCreate("Microsoft.XMLDOM")
    $oXML.load($aFile)

    $oNodes = $oXML.selectNodes("//photo")
    Do
        $oNode = $oNodes.nextNode()
        $t = $oNode.text

        ;If $t = '' Then
        ;   Msgbox(0,'','Search returned 0 results. Contact support.')
        ;   Exit
        ;EndIf

        ConsoleWrite($aFileList[$i] & ': Value: '& $t & @CRLF)

        FileWriteLine("event.txt",$t)
        $i = $i + 1
    Until $i = $aFileList[0]

I can get the XML function to work when it is a single file to read but I can have hundreds of files to go through in one hit. Any help you can offer would be great. 

Thanks

Mike.

Edited by fearless1

Share this post


Link to post
Share on other sites
kaisies

File list to array only returns the file name not the full file path by default. 

Share this post


Link to post
Share on other sites
guinness

But there is a parameter you can set to return the fullpath. Help file tells you.


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
RaiNote

You want to Show XML Files within an Array right? Then Look in Help File at _WinApi_IsPathContentType

#include <Array.au3>
#include <File.au3>
#include <WinAPIShPath.au3>

Local $sFileList = _FileListToArray(@SystemDir, '*.*', 1)
Local $aSortList[UBound($sFileList) - 1]
Local $iCount = 0

For $i = 1 To $sFileList[0]
    If _WinAPI_PathIsContentType($sFileList[$i], 'text/xml') Then
        $aSortList[$iCount] = $sFileList[$i]
        $iCount += 1
    EndIf
Next
If $iCount Then
    ReDim $aSortList[$iCount]
Else
    Exit
EndIf

_ArrayDisplay($aSortList, '_WinAPI_PathIsContentType')

This is the Example of it and it Shows the XML files ^-^


  • C++/AutoIt/OpenGL Easy Coder
  • I will be Kind to you and try to help you
  • till what you want isn't against the Forum
  • Rules~

 

Share this post


Link to post
Share on other sites
fearless1

I can scroll through and get the list of XML files. What I am trying to pull iOS the 3 values within the node <Photo> of each XML and write those values out to a file.

Share this post


Link to post
Share on other sites
RaiNote

If you want to read XML °-° then look for the XML UDF

https://www.autoitscript.com/forum/topic/19848-xml-dom-wrapper-com/?page=38#comment-1245937

You can Read with this UDF XML Files and if u want to write the readed text anywhere °-°

Edited by RaiNote

  • C++/AutoIt/OpenGL Easy Coder
  • I will be Kind to you and try to help you
  • till what you want isn't against the Forum
  • Rules~

 

Share this post


Link to post
Share on other sites
fearless1

Thanks guys. I'm not that good at this stuff but will give it a shot. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×