summaryrefslogtreecommitdiffstats
path: root/tclxml/tcldom-libxml2.tcl
diff options
context:
space:
mode:
authorWilliam Joye <wjoye@cfa.harvard.edu>2016-10-27 20:17:32 (GMT)
committerWilliam Joye <wjoye@cfa.harvard.edu>2016-10-27 20:17:32 (GMT)
commitf7560d0a451a793441216d76eb4d9475aab61740 (patch)
tree1d7f6b96f50e96acb91525d1d933184eec54bb85 /tclxml/tcldom-libxml2.tcl
parentea28451286d3ea4a772fa174483f9a7a66bb1ab3 (diff)
parent55c7ed6e4d159cebe06999bf61e668284a89cd69 (diff)
downloadblt-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.tcl37
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]
+}