diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2016-10-27 20:17:32 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2016-10-27 20:17:32 (GMT) |
commit | f7560d0a451a793441216d76eb4d9475aab61740 (patch) | |
tree | 1d7f6b96f50e96acb91525d1d933184eec54bb85 /tclxml/tcldom-libxml2.tcl | |
parent | ea28451286d3ea4a772fa174483f9a7a66bb1ab3 (diff) | |
parent | 55c7ed6e4d159cebe06999bf61e668284a89cd69 (diff) | |
download | blt-f7560d0a451a793441216d76eb4d9475aab61740.zip blt-f7560d0a451a793441216d76eb4d9475aab61740.tar.gz blt-f7560d0a451a793441216d76eb4d9475aab61740.tar.bz2 |
Merge commit '55c7ed6e4d159cebe06999bf61e668284a89cd69' as 'tclxml'
Diffstat (limited to 'tclxml/tcldom-libxml2.tcl')
-rw-r--r-- | tclxml/tcldom-libxml2.tcl | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tclxml/tcldom-libxml2.tcl b/tclxml/tcldom-libxml2.tcl new file mode 100644 index 0000000..d5ef415 --- /dev/null +++ b/tclxml/tcldom-libxml2.tcl @@ -0,0 +1,37 @@ +# impl.tcl -- +# +# Support script for libxml2 implementation. +# +# Std disclaimer +# +# $Id: tcldom-libxml2.tcl,v 1.1.1.1 2009/01/16 22:11:49 joye Exp $ + +namespace eval ::dom { + variable strictDOM 1 +} + +proc dom::libxml2::parse {xml args} { + + array set options { + -keep normal + -retainpath /* + } + array set options $args + + if {[catch {eval ::xml::parser -parser libxml2 [array get options]} parser]} { + return -code error "unable to create XML parser due to \"$parser\"" + } + + if {[catch {$parser parse $xml} msg]} { + return -code error $msg + } + + set doc [$parser get document] + set dom [dom::libxml2::adoptdocument $doc] + $parser free + + return $dom +} +proc dom::parse {xml args} { + return [eval ::dom::libxml2::parse [list $xml] $args] +} |