Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DotNet.LoadAssembly "System.Xml"
- struct XMLNode(
- Tag,
- Parent,
- DotNetNode,
- fn init dnNode = (
- DotNetNode = dnNode
- Tag = dnNode.LocalName
- Parent = dnNode.ParentNode
- ),
- fn GetTag = (
- DotNetNode.Name
- ),
- fn SetTag newTag =(
- try(DotNetNode.Name = newTag)catch(False)
- ),
- fn GetText = (
- DotNetNode.InnerText
- ),
- fn SetText txt = (
- DotNetNode.InnerText = txt
- ),
- fn AddAttribute attribute value = (
- DotNetNode.SetAttribute attribute value
- ),
- fn GetAttribute attribute = (
- DotNetNode.GetAttribute attribute
- ),
- fn SetAttributeValue attribute value = (
- DotNetNode.SetAttribute attribute value
- ),
- fn DeleteAttribute attribute = (
- DotNetNode.RemoveAttribute attribute
- ),
- fn GetAllAttributes = (
- ret = #()
- attribs = DotNetNode.Attributes
- for i = 0 to (attribs.Count - 1) do(
- t = #()
- item = (attribs.ItemOf i)
- append t item.Name
- append t item.Value
- append ret t
- )
- return ret
- ),
- fn HasAttribute attribute =(
- DotNetNode.HasAttribute attribute
- ),
- fn AppendNode newNode = (
- if classof newNode == XMLNode then(
- DotNetNode.AppendChild newNode.DotNetNode
- return True
- )else(False)
- ),
- fn GetChild index = (
- dNode = DotNetNode.ChildNodes.ItemOf index
- if dNode.Name != "#text" then(
- newNode = XMLNode()
- newNode.init dnode
- newNode
- )else(return False)
- ),
- fn GetChildren = (
- nodes = #()
- for i = 0 to (DotNetNode.ChildNodes.Count - 1) do(
- dNode = DotNetNode.ChildNodes.ItemOf i
- newNode = XMLNode()
- newNode.init dNode
- append nodes newNode
- )
- nodes
- ),
- fn DeleteChild childNode = (
- if classof childNode == XMLNode then (
- DotNetNode.RemoveChild childNode.DotNetNode
- return True
- )else(False)
- )
- )
- struct XMLDocument (
- file = undefined,
- rootNode = undefined,
- dom = dotNetObject "System.Xml.XmlDocument",
- loaded = undefined,
- fn LoadXML pathToXml = (
- file = pathToXml
- doc = dom.Load file
- loaded = True
- True
- ),
- fn SaveXML = (
- if loaded == True then(
- dom.Save file
- return True
- )else(False)
- ),
- fn GetRootNode = (
- rootNode = XMLNode()
- rootNode.init dom.DocumentElement
- rootNode
- ),
- fn getNewNode tag = (
- dNode=dom.CreateElement tag
- newNode=XMLNode()
- newNode.init dNode
- newNode
- ),
- fn AppendNode newNode = (
- if classof newNode == XMLNode then(
- dom.AppendChild newNode.DotNetNode
- return True
- )else(False)
- ),
- fn PrettySaveXML = (
- if loaded == True then(
- writer = dotNetClass "System.Xml.XmlTextWriter"
- wSettings = dotNetObject "System.Xml.XmlWriterSettings"
- wSettings.indent = True
- w = writer.create file wSettings
- --dom.writeTo w
- dom.writeContentTo w
- w.close()
- True
- )
- )
- )
- global MaxSlide
- (
- if MaxSlide != undefined do ( closerolloutfloater MaxSlide)
- MainMenu = newrolloutfloater "MaxSlide" 200 460
- local BSPathRollout
- local BSProjectFiles
- local allFiles = #()
- rollout BSPathRollout "BodySlide Folder"
- (
- editText BodySlideDir "Select Bodyslide Directory" labelOnTop:true
- button openBSDir "Browse..."
- button loadProjects "Set Working Directory"
- Listbox displayedFiles "Project Files" labelOnTop:true
- on openBSDir pressed do
- (
- local directory = getSavePath caption:"Select Bodyslide Folder"
- if directory != undefined do
- (
- BodySlideDir.text = directory + "\\"
- )
- )
- on loadProjects pressed do
- (
- ProjectDir = (BodySlideDir.text + "\\SliderSets")
- allFiles = getFiles(ProjectDir + "\\*.xml")
- if(allFiles == null) do
- (
- MessageBox ("Invalid BodySlide Directory")
- )
- sort allFiles
- fileNameDisplay = deepcopy allFiles
- for i=1 to allFiles.count do
- (
- fileNameDisplay[i] = substring allFiles[i] (ProjectDir.count+1) -1
- )
- displayedFiles.items = fileNameDisplay
- )
- on displayedFiles selected i do
- (
- local projectFile = XMLDocument()
- projectFile.LoadXML allFiles[i]
- if projectFile.loaded == true then
- (
- localRoot = projectFile.GetRootNode()
- local childs = localRoot.GetChildren()
- for c=1 to childs.count do
- (
- local sliderSetName = childs[c].GetAttribute "name"
- print sliderSetName
- local sliders = childs[c].GetChildren()
- for s=1 to sliders.count do
- (
- if sliders[s].GetTag() == "Slider" then
- (
- if sliders[s].HasAttribute "name" then
- (
- local sliderName = sliders[s].GetAttribute "name"
- print sliderName
- )
- )
- )
- )
- print "Successful XML Loaded"
- )
- )
- )
- addRollout BSPathRollout MainMenu rolledup:false
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement