nitekram Posted March 11, 2013 Share Posted March 11, 2013 Are you looking just to delete this string ( <Eq Source="LATEX"><![CDATA[ $$begin{array}{*{20}l} Kw+Pa &= V, P^Tw &= 0, end{array} $$ ]]>></Eq> ) - if so you can use the same code above and then just use "" (a set of double quotes, or single quotes) for the replace parameter If I am wrong - can you describe a little more? 2¢ All by me:"Sometimes you have to go back to where you started, to get to where you want to go." "Everybody catches up with everyone, eventually" "As you teach others, you are really teaching yourself." From my dad "Do not worry about yesterday, as the only thing that you can control is tomorrow." WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2 AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit Docs SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language Programming Tips Excel Changes ControlHover.UDF GDI_Plus Draw_On_Screen GDI Basics GDI_More_Basics GDI Rotate GDI Graph GDI CheckExistingItems GDI Trajectory Replace $ghGDIPDll with $__g_hGDIPDll DLL 101? Array via Object GDI Swimlane GDI Plus French 101 Site GDI Examples UEZ GDI Basic Clock GDI Detection Ternary operator Link to comment Share on other sites More sharing options...
aguynamedray Posted March 11, 2013 Author Share Posted March 11, 2013 There are lots of CDATA sections in xml. But I need to delete the <Eq Source="LATEX"> as well as the sub element and the data in it. Can you show me how? Thanks. Link to comment Share on other sites More sharing options...
nitekram Posted March 11, 2013 Share Posted March 11, 2013 I do not know the structure of XML well enough to understand what you are looking for. Can you provide more details and examples of what you are trying to do? 2¢ All by me:"Sometimes you have to go back to where you started, to get to where you want to go." "Everybody catches up with everyone, eventually" "As you teach others, you are really teaching yourself." From my dad "Do not worry about yesterday, as the only thing that you can control is tomorrow." WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2 AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit Docs SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language Programming Tips Excel Changes ControlHover.UDF GDI_Plus Draw_On_Screen GDI Basics GDI_More_Basics GDI Rotate GDI Graph GDI CheckExistingItems GDI Trajectory Replace $ghGDIPDll with $__g_hGDIPDll DLL 101? Array via Object GDI Swimlane GDI Plus French 101 Site GDI Examples UEZ GDI Basic Clock GDI Detection Ternary operator Link to comment Share on other sites More sharing options...
aguynamedray Posted March 11, 2013 Author Share Posted March 11, 2013 To make it clear, how do I replace special characters and numbers (e.g. <![CDATA[[ $$ or , ^, &, and soon) in xml? Link to comment Share on other sites More sharing options...
nitekram Posted March 11, 2013 Share Posted March 11, 2013 If you are just talking about removing special characters then you could use the same function that was written. Put the special character in for the search string and then search for it - if the string is going to be the same across the board, or make a list of your string matches. So using the check to make sure the string/line has the character in question and if it does - replace with NULL (if beta user) or '' "" (a single quote 2 times, or a double quote 2 times) - that will replace it with nothing - not even a space. But I think you are looking for something else? 2¢ All by me:"Sometimes you have to go back to where you started, to get to where you want to go." "Everybody catches up with everyone, eventually" "As you teach others, you are really teaching yourself." From my dad "Do not worry about yesterday, as the only thing that you can control is tomorrow." WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2 AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit Docs SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language Programming Tips Excel Changes ControlHover.UDF GDI_Plus Draw_On_Screen GDI Basics GDI_More_Basics GDI Rotate GDI Graph GDI CheckExistingItems GDI Trajectory Replace $ghGDIPDll with $__g_hGDIPDll DLL 101? Array via Object GDI Swimlane GDI Plus French 101 Site GDI Examples UEZ GDI Basic Clock GDI Detection Ternary operator Link to comment Share on other sites More sharing options...
aguynamedray Posted March 11, 2013 Author Share Posted March 11, 2013 (edited) Yup! Your right, I was looking for something else. I would like to delete the whole <Eq ID="DE1">...</Eq> node as well as the child node in all xml found in output directory. Edited March 11, 2013 by aguynamedray Link to comment Share on other sites More sharing options...
nitekram Posted March 11, 2013 Share Posted March 11, 2013 <Eq ID="DE1">...</Eq>Taking this example - I believe we are on the same page just reading a different language. If the string or NODE all start with <E then we search for that, and then find all characters from that point to the next point q>Clear as mud? You will need to look at StringMid & StingLen in the help file - they should give you a idea of how to use it to find what you are looking for. There are some gurus on here that use RegEx that might have a way, but I do not use that - YET 2¢ All by me:"Sometimes you have to go back to where you started, to get to where you want to go." "Everybody catches up with everyone, eventually" "As you teach others, you are really teaching yourself." From my dad "Do not worry about yesterday, as the only thing that you can control is tomorrow." WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2 AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit Docs SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language Programming Tips Excel Changes ControlHover.UDF GDI_Plus Draw_On_Screen GDI Basics GDI_More_Basics GDI Rotate GDI Graph GDI CheckExistingItems GDI Trajectory Replace $ghGDIPDll with $__g_hGDIPDll DLL 101? Array via Object GDI Swimlane GDI Plus French 101 Site GDI Examples UEZ GDI Basic Clock GDI Detection Ternary operator Link to comment Share on other sites More sharing options...
Nessie Posted March 11, 2013 Share Posted March 11, 2013 (edited) Try this: #include <File.au3> $xml_file = _FileListToArray(@ScriptDir, "*.xml", 1) If @error Then MsgBox(16, "Error", "No xml file") Exit EndIf For $i = 1 To UBound($xml_file) - 1 $xml_path = @ScriptDir & "\" & $xml_file[$i] _ReplaceStringInFile($xml_path, '<EqSource Format="TEX">', '<Source Format="LATEX">') _ReplaceStringInFile($xml_path, '</EqSource>', "</Source>") $Open = FileOpen($xml_path) $Read = FileRead($Open) $sRegex = StringRegExpReplace($Read, '(<Eq ID="DE1">.*?</Eq>)', "") If Not @error Then $Open = FileOpen($xml_path,2) FileWrite($Open, $sRegex) EndIf FileClose($Open) Next Hi! Edited March 11, 2013 by Nessie My UDF: NetInfo UDF Play with your network, check your download/upload speed and much more! YTAPI Easy to use YouTube API, now you can easy retrive all needed info from a video. NavInfo Check if a specific browser is installed and retrive other usefull information. YWeather Easy to use Yahoo Weather API, now you can easily retrive details about the weather in a specific region. No-IP UDF Easily update your no-ip hostname(s). My Script: Wallpaper Changer Change you wallpaper dinamically, you can also download your wallpaper from your website and share it with all! My Snippet: _ImageSaveToBMPConvert an image to bmp format. _SciteGOTO Open a file in SciTE at specific fileline. _FileToHex Show the hex code of a specified file Link to comment Share on other sites More sharing options...
jdelaney Posted March 11, 2013 Share Posted March 11, 2013 (edited) I've always found xpaths to be much easier to work with than regexp: $stest = '<?xml version="1.0"?><items><item name="racecar" test="test2"><type title="value">value1</type><type title="value">value2</type></item></items>' $oXML=ObjCreate("Microsoft.XMLDOM") ;~ $stest = @DesktopDir & "\xml2.xml" $oXML.loadxml($stest) $oNodes = $oXML.selectNodes( '//items/item' ) For $oNode In $oNodes $oNode.text = "whatever value you need" Next ConsoleWrite ( $oXML.xml & @CRLF ) when loading a file to the xml object, use .load instead Edited March 11, 2013 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. Link to comment Share on other sites More sharing options...
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