Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
#DefineFunction ParseXML(xml) rdr = ObjectCreate("Msxml2.SAXXMLReader.3.0") wrt = ObjectCreate("Msxml2.MXXMLWriter.3.0") wrt.byteOrderMark = @FALSE wrt.omitXMLDeclaration = @TRUE wrt.indent = @TRUE ;'set the writer to the content handler rdr.contentHandler = wrt rdr.dtdHandler = wrt rdr.PutProperty("http://xml.org/sax/properties/lexical-handler", wrt) rdr.PutProperty("http://xml.org/sax/properties/declaration-handler", wrt) rdr.Parse(xml) newxml = wrt.output ObjectClose(wrt) ObjectClose(rdr) Return(newxml) #EndFunction xmlDoc = ObjectCreate("Msxml2.DOMDocument.3.0") xmlDoc.async = @FALSE xmlDoc.loadXML(`<Folders/>`) err = xmlDoc.parseerror If err.errorCode Then GoSub ShowParseErrors ; get a list of folders... FolderList = DirItemize("C:\*.*") ; build a set of nodes for them... For x = 1 To ItemCount(FolderList, @TAB) ThisFolder = ItemExtract(x, FolderList, @TAB) NewFolder = xmlDoc.createElement("Folder") NewFolder.text = ThisFolder xmlDoc.documentElement.appendChild(NewFolder) Next ; parse the XML so it looks pretty, reload it so ; that it'll display nice... xmlDoc.loadXML(ParseXML(xmlDoc.xml)) Message("Debug", xmlDoc.xml) ; now let's do a simple edit, by turning all the ; entries to UPPERCASE FolderCollection = xmlDoc.selectNodes("//Folder") ForEach Folder In FolderCollection Folder.text = StrUpper(Folder.text) Next Message("Debug", xmlDoc.xml) ; now let's delete the even numbered Folder elements... FolderCollection = xmlDoc.selectNodes("//Folder") For x = 0 To FolderCollection.length-1 CurrentElement = FolderCollection.item(x) If (x+1) mod 2 == 0 ParentNode = CurrentElement.parentNode ParentNode.removeChild(CurrentElement) EndIf Next Message("Debug", xmlDoc.xml) ; now let's delete all the folder nodes... FolderCollection = xmlDoc.selectNodes("//Folder").removeAll Message("Debug", xmlDoc.xml) Exit :ShowParseErrors ec = err.errorCode er = err.reason el = err.line elp = err.linepos es = err.srcText Message("XML Parse Error", StrCat("Error Code: ", ec, @LF, "Reason: ", er, @LF, "Line: ", el, " ", "Column: ", elp, @LF, "Text: ", es))
Article ID: W17346
File Created: 2009:01:16:09:23:54
Last Updated: 2009:01:16:09:23:54