Fix the printing of attributes.
authorKim Nguyễn <kn@lri.fr>
Mon, 4 Mar 2013 21:03:25 +0000 (22:03 +0100)
committerKim Nguyễn <kn@lri.fr>
Mon, 4 Mar 2013 21:03:25 +0000 (22:03 +0100)
src/tree/naive.ml

index 8654c45..cff6ee2 100644 (file)
@@ -14,7 +14,7 @@
 (***********************************************************************)
 
 (*
-  Time-stamp: <Last modified on 2013-02-14 16:14:00 CET by Kim Nguyen>
+  Time-stamp: <Last modified on 2013-03-04 21:59:38 CET by Kim Nguyen>
 *)
 open Utils
 
@@ -228,7 +228,9 @@ let output_escape_string out s =
 
 let rec print_attributes out tree_ node =
   if node != nil then begin
-    output_string out (QName.to_string node.tag);
+    let ntag = QName.to_string node.tag in
+    output_char out ' ';
+    output out ntag 1 (String.length ntag - 1);
     output_string out "=\"";
     output_escape_string out node.first_child.data;
     output_char out '"';
@@ -237,32 +239,30 @@ let rec print_attributes out tree_ node =
 
 let rec print_xml out tree_ node =
   if node != nil then
-    let () =
-      if node.tag == QName.text then
-        output_escape_string out node.data
+  let () =
+    if node.tag == QName.text then
+    output_escape_string out node.data
+    else
+    let tag = QName.to_string node.tag in
+    output_char out '<';
+    output_string out tag;
+    let fchild =
+      if node.first_child.tag == QName.attribute_map then
+      let () = print_attributes out tree_ node.first_child.first_child in
+      node.first_child.next_sibling
       else
-        let tag = QName.to_string node.tag in
-        output_char out '<';
-        output_string out tag;
-        let fchild =
-          if node.first_child.tag == QName.attribute_map then
-            let () =
-              print_attributes out tree_ node.first_child.first_child
-            in
-            node.first_child.next_sibling
-          else
-            node.first_child
-        in
-        if fchild == nil then output_string out "/>"
-        else begin
-          output_char out '>';
-          print_xml out tree_ fchild;
-          output_string out "</";
-          output_string out tag;
-          output_char out '>'
-        end
+      node.first_child
     in
-    print_xml out tree_ node.next_sibling
+    if fchild == nil then output_string out "/>"
+    else begin
+      output_char out '>';
+      print_xml out tree_ fchild;
+      output_string out "</";
+      output_string out tag;
+      output_char out '>'
+    end
+  in
+  print_xml out tree_ node.next_sibling
 
 
 let root t = t.root