Toma , Try the following script from my XML Utility Library. Any comments and enhancements wellcome!
-- /****************************************************************** MedIPS Concept & Implementation @author Joel Guillod @copyright Joel Guillod @version 1.0 @created 2003.08.29 @modified 2004.03.16 @url http://www.imed.ch/rev @url mailto:[EMAIL PROTECTED] ***************************************************************** */ constant kAttributeNotFound = "XMLerr, can't find attribute" /** @usage if xml.IsXMLErr(result()) then processError @returns true when error occured with last XMLhandler (e.g. revCreateXMLTreeFromFile, etc). */ function xml.IsXMLErr @rpResult if item 1 of rpResult is "XMLerr" then return true else return false end xml.IsXMLErr /** @usage put xml.tagForPath(aNode) into myTag @sample put xml.tagForPath("/address/name[2]") into myTag -- => "name" @returns the most bottom tag of the node path. */ function xml.tagForPath selectednode set the itemdel to "/" get last item of selectednode set the itemdel to "[" return item 1 of it end xml.tagForPath /** get xml.textToUTF8(aString) @purpose Converts a revolution string to a UTF8 string and returns it. */ function xml.textToUTF8 aString return unidecode(uniencode(aString),"UTF8") end xml.textToUTF8 /** get xml.UTF8ToText(utf8String) @purpose Converts a UTF8 string to a revolution string and returns it. */ function xml.UTF8ToText utf8String return unidecode(uniencode(utf8String,"UTF8")) end xml.UTF8ToText /** return xml.returnMsgAfterDeleteXmlTree(pXmlID,pMsg) @sample if tActionNode is empty or xml.IsXMLErr(tActionNode) then return xml.returnMsgAfterDeleteXmlTree(tXmlID,"next xml node not found:" && tActionNode) */ function xml.returnMsgAfterDeleteXmlTree pXmlID,pMsg revDeleteXMLTree pXmlID return pMsg end xml.returnMsgAfterDeleteXmlTree /** xml.utf8.setAttribute treeID,node,attributeName,aValue @purpose Equivalent to: revSetXMLAttribute treeID,node,attributeName,xml.textToUTF8(aValue) @param aValue is a the text of a revolution field. */ on xml.utf8.setAttribute treeID,node,attributeName,aValue revSetXMLAttribute treeID,node,attributeName,xml.textToUTF8(aValue) return result() end xml.utf8.setAttribute /** get xml.utf8.Attribute(treeID,node,attributeName) @purpose Equivalent to: xml.UTF8ToText(revXMLAttribute(treeID,node,attributeName)) @returns is the standard text for revolution. */ function xml.utf8.attribute treeID,node,attributeName return xml.UTF8ToText(revXMLAttribute(treeID,node,attributeName)) end xml.utf8.attribute /** xml.utf8.AddNode treeID,parentPath,nodeName,nodeContents @purpose Equivalent to: revAddXMLNode treeID,parentPath,nodeName,xml.textToUTF8(nodeContents) @param nodeContents is a the text of a revolution field. @returns Error description or node path. */ on xml.utf8.AddNode treeID,parentPath,nodeName,nodeContents revAddXMLNode treeID,parentPath,nodeName,xml.textToUTF8(nodeContents) return result() end xml.utf8.AddNode /** xml.utf8.SetNodeContents treeID,node,nodeContents @purpose Equivalent to: evXMLPutIntoXMLNode treeID,node,xml.textToUTF8(nodeContents) @param nodeContents is a the text of a revolution field. @returns Error description or node path. */ on xml.utf8.SetNodeContents treeID,node,nodeContents get xml.textToUTF8(nodeContents) revPutIntoXMLNode treeID,node,it return result() end xml.utf8.SetNodeContents /** get xml.utf8.NodeContents(treeID,node,attributeName) @purpose Equivalent to: xml.UTF8ToText(revXMLNodeContents(treeID,node)) */ function xml.utf8.NodeContents treeID,node return xml.UTF8ToText(revXMLNodeContents(treeID,node)) end xml.utf8.NodeContents /**put xml.utf8.createTree(pRootTag) into tXmlTreeID @purpose To create an xml tree with only the root tag. @purpose Then can revAppendXML, revSetXMLAttribute, revSetXMLAttribute, revXMLPutIntoXMLNode,� to complete the tree. */ function xml.utf8.createTree pRootTag return revCreateXMLTree("<?xml version=""e&"1.0""e&" encoding=""e&"utf-8""e&"?><" & \ pRootTag & "></" & pRootTag & ">",false,true,false) end xml.utf8.createTree /** @usage put xml.enclosedTextWithTag(aText,aTag) after myStream @results is <aTag>aText</aTag> */ function xml.enclosedTextWithTag aText,aTag return merge("<[[aTag]]>[[aText]]</[[aTag]]>") end xml.enclosedTextWithTag /** @usage xml.appendToStream aStream,aText */ on xml.appendToStream @aStream,@aText put aText after aStream end xml.appendToStream -- _______________________________________________ use-revolution mailing list [EMAIL PROTECTED] http://lists.runrev.com/mailman/listinfo/use-revolution
