Ok, I'm not updating any one particular post anymore, it's too confusing. Here's all of the latest code that I have. Still a lot of work to be done, and I wont be doing any over the weekend if anyone is bored, but we have a basic working model.

Code:
Break On

$nul=SetOption("ASCII","On")
$nul=SetOption("Explicit","On")

Dim $filename1, $filename2, $filename3
Dim $xml, $

; This is an example by object
$filename1 = "C:\KiXtartByObject.xml"

$xml = LoadXml($filename1)

$= WriteXmlValue($xml, "korg/shawn/number", 119)
$= WriteXmlValue($xml, "korg/jose/number", 1772)
$= WriteXmlValue($xml, "korg/jooel/number", 2087)
$= WriteXmlValue($xml, "korg/jim/number",3555)

$= WriteXMLAttr($xml, "korg/jim", "Id", 3555)
$= WriteXMLAttr($xml, "korg/jim", "Age", 31)

SaveXml($xml, $filename1)
$xml = 0

; This is an example by filename
$filename2 = "C:\KiXtartByFileName.xml"

$= WriteXmlValue($filename2, "korg/shawn/number", 119)
$= WriteXmlValue($filename2, "korg/jose/number", 1772)
$= WriteXmlValue($filename2, "korg/jooel/number", 2087)
$= WriteXmlValue($filename2, "korg/jim/number",3555)

$= WriteXMLAttr($filename2, "korg/jim", "Id", 3555)
$= WriteXMLAttr($filename2, "korg/jim", "Age", 31)

? "Jim's age: " ReadXMLAttr($filename2, "korg/jim", "Age")
? "Jose's Number: " ReadXmlValue($filename2, "korg/jose/number")

$xml = 0


; This is an example by XML String
$filename3 = "C:\KiXtartByXMLString.xml"
Dim $strXML,$objXML

$strXML = "<korg><jim><E-mail>jim@@foo.com</E-mail></jim></korg>"
$strXML = WriteXmlValue($strXML, "korg/jim/id",3555)
; Note that after the initial write, the return becomes an object, therefore
; capturing the returns isn't necessary, but doesn't hurt either and is consistent.
$strXML = WriteXmlValue($strXML, "korg/jim/height",6)
$strXML = WriteXmlValue($strXML, "korg/jim/weight",230)
$strXML = WriteXmlValue($strXML, "korg/jim/eyes",2)

$strXML = WriteXMLAttr($strXML, "korg/jim", "Age", 31)
$strXML = WriteXMLAttr($strXML, "korg/jim", "Drink", "Beer")

? "Jim's age: " ReadXMLAttr($strXML, "korg/jim", "Age")


SaveXml($strXML, $filename3)

? "Jim's Drink: " ReadXMLAttr($filename3, "korg/jim", "Age")
$ = RemoveXMLAttr($filename3, "korg/jim", "Age")
? "Jim's Drink: " ReadXMLAttr($filename3, "korg/jim", "Age")

$strXML = 0


exit 1


; CreateXMLElement() - Creates an empty element pair
Function CreateXMLElement()

EndFunction

; EnumXMLAttr() - Enums all attributes of an element
Function EnumXMLAttr()

EndFunction

; EnumXMLElement() - Enums child elements of a given element
Function EnumXMLElement()

EndFunction

;FormatXML() - Formats the output style of an XMLDOM object to the standard
Function FormatXML($objXMLDOM)

;? "V" vartype($objXMLDOM)

Dim $,$strXSL,$objXSL
;Create and Load XSL
; <?xml version="1.0" encoding="UTF-8"?>
; <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
; <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
; <xsl:template match="/ | @* | node()">
; <xsl:copy>
; <xsl:apply-templates select="@* | node()" />
; </xsl:copy>
; </xsl:template>
; </xsl:stylesheet>

$strXSL = "<?xml version=" + chr(34) + "1.0" + chr(34) + " encoding=" +
chr(34) + "UTF-8" + chr(34) + "?>" + @CRLF
$strXSL = $strXSL + "<xsl:stylesheet version=" + chr(34) + "1.0" + chr(34) +
" xmlns:xsl=" + chr(34) + "http://www.w3.org/1999/XSL/Transform" +
chr(34) + ">" + @CRLF
$strXSL = $strXSL + "<xsl:output method=" + chr(34) + "xml" + chr(34) +
" version=" + chr(34) + "1.0" + chr(34) + " encoding=" + chr(34) +
"UTF-8" + chr(34) + " indent=" + chr(34) + "yes" + chr(34) + "/>" + @CRLF
$strXSL = $strXSL + "<xsl:template match=" + chr(34) + "/ | @@* | node()" +
chr(34) + ">" + @CRLF
$strXSL = $strXSL + "<xsl:copy>"+ @CRLF
$strXSL = $strXSL + "<xsl:apply-templates select=" + chr(34) +
"@@* | node()" + chr(34) + " />"+ @CRLF
$strXSL = $strXSL + "</xsl:copy>"+ @CRLF
$strXSL = $strXSL + "</xsl:template>"+ @CRLF
$strXSL = $strXSL + "</xsl:stylesheet>"

;? "XLM Stylesheet: " + @CRLF + $strXSL

$objXSL = CreateObject("Microsoft.XMLDOM")
$objXSL.async = false
$=$objXSL.loadXML($strXSL)

;Transform file
$objXMLDOM.TransformNodeToObject ($objXSL, $objXMLDOM)
$formatXML = $objXMLDOM
EndFunction

;LoadXML() - Load an existing .XML file, instantiate XMLDOM object for use
;regardless of file existance.
Function LoadXML($filename)
dim $, $rootNode, $objNewPI, $strType

$loadXml = CreateObject("Microsoft.XMLDOM")
$loadXml.async = False
$loadXml.preserverwhitespace = True

if not $loadXml
return
endif

$ = $loadXml.Load($filename)
EndFunction

; ReadXMLAttr() - Read a specific attribute of an XML element
Function ReadXMLAttr($source, $Path, $Attr)
Dim $SelectionTag,$AttrName,$,$xml
; *** Begin Overloaded Var Sorting ***
If VarType($source) = 9
; An object was passed
$xml = $source
Else
If Instr($source,"<")=0
; A file name was passed
$xml = LoadXML($source)
Else
; An XML string was passed
$xml = CreateObject("Microsoft.XMLDOM")
$xml.async = false
$=$xml.loadXML($source)
EndIf
EndIf
; *** End Overloaded Var Sorting ***

$SelectionTag = $xml.getElementsByTagName($Path)
$AttrName = $SelectionTag.item(0)
If @ERROR = "-2147352573"
$ReadXMLAttr = ""
Exit @Error
Else
$ReadXMLAttr =$AttrName.getAttribute($Attr)
EndIf

; Begin Overloaded Var Exit Strategy
; None needed
; End Overloaded Var Exit Strategy
EndFunction

;ReadXMLElement() - Reads the value of an XML element
Function ReadXMLValue($source, $key, optional $defaultValue)
Dim $sectionNode,$xml,$

; *** Begin Overloaded Var Sorting ***
If VarType($source) = 9
; An object was passed
$xml = $source
Else
If Instr($source,"<")=0
; A file name was passed
$xml = LoadXML($source)
Else
; An XML string was passed
$xml = CreateObject("Microsoft.XMLDOM")
$xml.async = false
$=$xml.loadXML($source)
EndIf
EndIf

; *** End Overloaded Var Sorting ***

$sectionNode = $xml.SelectSingleNode($key)
If not $sectionNode
$ReadXmlValue = $defaultValue
Else
$ReadXmlValue = $sectionNode.FirstChild.Text
EndIf
EndFunction

; RemoveXMLAttr() - Deletes an XML element attribute
Function RemoveXMLAttr($source, $Path, $attr, optional $id)
Dim $SelectionTag,$AttrTag,$erase,$,$xml

; *** Begin Overloaded Var Sorting ***
If VarType($source) = 9
; An object was passed
$xml = $source
Else
If Instr($source,"<")=0
; A file name was passed
$xml = LoadXML($source)
Else
; An XML string was passed
$xml = CreateObject("Microsoft.XMLDOM")
$xml.async = false
$=$xml.loadXML($source)
EndIf
EndIf
; *** End Overloaded Var Sorting ***

$SelectionTag = $xml.getElementsByTagName($Path)
If $id=""
$id=0
EndIf
$AttrTag = $SelectionTag.item($id)
$erase = $AttrTag.removeAttribute($attr)

; Begin Overloaded Var Exit Strategy
If VarType($source) = 9
; An object was passed.
$RemoveXMLAttr = $xml
Else
If Instr($source,"<")=0

; A file name was passed, so we write it out and destory the object
SaveXML($xml, $source)
Else
; An XML string was passed.
$RemoveXMLAttr = $xml

EndIf
EndIf
; End Overloaded Var Exit Strategy

EndFunction

; RemoveXMLElement() - Deletes an XML element (Recursively?)
Function RemoveXMLElement()

EndFunction

;SaveXML() - Saves an XMLDOM object to a file
; Requires: FormatXML()
Function SaveXML($xml, $filename)
$xml = FormatXML($xml)
$SaveXml = $xml.Save($filename)
EndFunction

Function WriteXMLAttr($source, $Path, $Attr, $Value)
Dim $SelectionTag,$AttrTag,$,$Write,$xml

; *** Begin Overloaded Var Sorting ***
If VarType($source) = 9
; An object was passed
$xml = $source
Else
If Instr($source,"<")=0
; A file name was passed
$xml = LoadXML($source)
Else
; An XML string was passed
$xml = CreateObject("Microsoft.XMLDOM")
$xml.async = false
$=$xml.loadXML($source)
EndIf
EndIf
; *** End Overloaded Var Sorting ***

$SelectionTag = $xml.getElementsByTagName($Path)
$AttrTag = $SelectionTag.item(0)
If @ERROR = "-2147352573"
$ = WriteXmlValue($xml, $path, "")
$SelectionTag = $xml.getElementsByTagName($Path)
$AttrTag = $SelectionTag.item(0)
EndIf
$write = $AttrTag.SetAttribute($Attr,$Value)

; Begin Overloaded Var Exit Strategy
If VarType($source) = 9
; An object was passed.
$WriteXMLAttr = $xml
Else
If Instr($source,"<")=0

; A file name was passed, so we write it out and destory the object
SaveXML($xml, $source)
Else
; An XML string was passed.
$WriteXMLAttr = $xml

EndIf
EndIf
; End Overloaded Var Exit Strategy
EndFunction

; WriteXMLValue() - Writes a value to an XML element
Function WriteXMLValue($source, $path, $value)
dim $, $p, $rootNode, $sectionNode, $parentNode, $childNode, $node, $xml

; *** Begin Overloaded Var Sorting ***
If VarType($source) = 9
; An object was passed
$xml = $source
Else
If Instr($source,"<")=0
; A file name was passed
$xml = LoadXML($source)
Else
; An XML string was passed
$xml = CreateObject("Microsoft.XMLDOM")
$xml.async = false
$=$xml.loadXML($source)
EndIf
EndIf
; *** End Overloaded Var Sorting ***

$sectionNode = $xml.SelectSingleNode($path);

if not $sectionNode
$parentNode = $xml

for each $node in split($path,"/")
$p = $p + $node
$sectionNode = $xml.SelectSingleNode($p)
if not $sectionNode
$sectionNode = $xml.CreateElement($node)
$parentNode = $parentNode.AppendChild($sectionNode)
else
$parentNode = $sectionNode
endif
$p = $p + "/"
next
endif

if $sectionNode
$sectionNode.Text = $value
endif

; Begin Overloaded Var Exit Strategy
If VarType($source) = 9
; An object was passed.
$WriteXMLValue = $xml
Else
If Instr($source,"<")=0

; A file name was passed, so we write it out and destory the object
SaveXML($xml, $source)
Else
; An XML string was passed.
$WriteXMLValue = $xml

EndIf
EndIf
; End Overloaded Var Exit Strategy

endfunction


; ******************************************************************************
; ApplyXSL() - Applies an XSL template. (Much potential here for an expanded
; set, see http://www.devguru.com/Technologies/xslt/quickref/xslt_index.html
Function ApplyXSL()

EndFunction

; FilterXML() - Apply a filter to an XMLDOM object. (Search the db. XSL related.)
Function FilterXML()

EndFunction


Function EnumXML($source)
dim $nodelist,$i
$NodeList = $source.getElementsByTagName("*")
For Each $i In $NodeList
? "Element " +$i.tagName
;? "attributes: " $i.attributes
;? "baseName: " $i.baseName
;? "childNodes: " $i.childNodes
;? "dataType: " $i.dataType
;? "definition: " $i.definition
;? "firstChild: " $i.firstChild.nodeName
;? "lastChild: " $i.lastChild.nodeName
;? "namespaceURI: " $i.namespaceURI
;? "nextSibling: " $i.nextSibling.nodeName
;? "nodeName: " $i.nodeName
;? "nodeType: " $i.nodeType
;? "nodeTypeString: " $i.nodeTypeString
;? "nodeValue: " $i.nodeValue
;? "ownerDocument: " $i.ownerDocument
;? "parentNode: " $i.parentNode.nodeName
;? "parsed: " $i.parsed
;? "prefix: " $i.prefix
;? "previousSibling: " $i.previousSibling.nodeName
;? "specified: " $i.specified
;? "tagName: " $i.tagName
;? "text: " $i.text
? "xml: " $i.xml
?
Next
EndFunction

_________________________
-Jim

...the sort of general malaise that only the genius possess and the insane lament.