jdelaney Posted February 21, 2012 Posted February 21, 2012 I'm attempting to replace a string in an XML file, to make the date a past date. I'm able to do so, but there has got to be a better way. XML like: <ExamTracker> <Exam TS="20100217091351" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/> <Exam TS="20100217091352" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/> <Exam TS="20100217091353" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/> <Exam TS="20100217091354" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/> <Exam TS="20100217091355" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/> <Exam TS="20100217091356" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/> </ExamTracker> The TS attribute is the data to change. Any ideas how to loop through and replace them, with say 20100216091351. Currently, I'm doing a loop to look for TS, getting the date string, doing a replace, deleting the file, then creating with my new, replaced string. $stest = FileRead ( "C:\DRS\Sys\Data\ExamTracker.xml" ) $iLength = StringLen ( $stest ) $iDateLen = 14 msgbox ( 4096, "FileGetTime", $stest ) For $i = 0 to $iLength $i = StringInStr ( $stest,"TS",0,1,$i + 1) If $i > 0 Then $iStartText = $i + 4 $datetime = StringMid ( $stest, $iStartText, $iDateLen ) $done = StringReplace ( $stest, $datetime, $sNewString ) FileDelete ( "C:\DRS\Sys\Data\ExamTracker.xml" ) FileWrite ( "C:\DRS\Sys\Data\ExamTracker.xml", $done ) Else ExitLoop EndIf Next IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.
BrewManNH Posted February 21, 2012 Posted February 21, 2012 Maybe _ReplaceStringInFile might help? Not sure if that is what you're looking for but might be of service. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
Beege Posted February 21, 2012 Posted February 21, 2012 Or a StringRepExp(). Heres a small sample: $sTest = '<Exam TS="20100217091352" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/>' & @LF & _ '<Exam TS="20100217091353" DS="DRWEBLAUNCH" Ext="1" ID="05IL66WM"/>' $sTest = StringRegExpReplace($sTest, 'Exam\h\TS\="(\d+)', 'Exam TS="' & 20100216091351) MsgBox(0,'', $sTest) Assembly Code: fasmg . fasm . BmpSearch . Au3 Syntax Highlighter . Bounce Multithreading Example . IDispatchASMUDFs: Explorer Frame . ITaskBarList . Scrolling Line Graph . Tray Icon Bar Graph . Explorer Listview . Wiimote . WinSnap . Flicker Free Labels . iTunesPrograms: Ftp Explorer . Snipster . Network Meter . Resistance Calculator
jdelaney Posted February 21, 2012 Author Posted February 21, 2012 (edited) Perfect. Thanks, all. If only there were a _StringRegExpReplaceInFile function. Edited February 21, 2012 by jdelaney IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now