demo.xml
<?xml version="1.0" encoding="UTF-8"?> <Demo> <!--comment block goes here--> <Node attribute="value"> <SubNode>text data</SubNode> </Node> <?piTag the processing instructions goes here?> <Node><![CDATA[</this is malformed!</malformed</malformed & worse cDATA>]]></Node> </Demo>
xmltotdom.tcl <file>
Will create a tcl source code to build a xml file as the original.
Example of demo.xml:
package require tdom 0.9.0- set encoding utf-8 set doc [dom createDocument Demo] set root [$doc documentElement] $root appendChild [$doc createComment {comment block goes here}] $root appendChild [set node0 [$doc createElement Node]] $node0 setAttribute attribute value $node0 appendChild [set node1 [$doc createElement SubNode]] $node1 appendChild [$doc createTextNode {text data}] $root appendChild [$doc createProcessingInstruction piTag {the processing instructions goes here}] $root appendChild [set node0 [$doc createElement Node]] $node0 appendChild [$doc createCDATASection {</this is malformed!</malformed</malformed & worse cDATA>}] fconfigure stdout -encoding $encoding puts [$root asXML -indent 2 -xmlDeclaration 1 -encString [string toupper $encoding]]
xmltotdomnodecmd.tcl <file>
Will create a tcl source code using nodecmd to build a xml file as the original.
Example of demo.xml:
package require tdom 0.9.0- set encoding utf-8 dom createNodeCmd cdataNode CData dom createNodeCmd commentNode Comment dom createNodeCmd piNode PInstr dom createNodeCmd textNode Text dom createNodeCmd -tagName Node elementNode Tag_Node dom createNodeCmd -tagName SubNode elementNode Tag_SubNode set doc [dom createDocument Demo] set root [$doc documentElement] $root appendFromScript { Comment {comment block goes here} Tag_Node attribute value { Tag_SubNode { Text text data } } PInstr piTag {the processing instructions goes here} Tag_Node { CData {</this is malformed!</malformed</malformed & worse cDATA>} } } fconfigure stdout -encoding $encoding puts [$root asXML -indent 2 -xmlDeclaration 1 -encString [string toupper $encoding]]