Jump to content

Help with some script


Recommended Posts

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
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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~

 

Link to comment
Share on other sites

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~

 

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...