List.iter (do_attribute parser_ ctx) attr_list
and do_attribute parser_ ctx (att, value) =
- let att_tag = QName.to_string (QName.attribute (QName.of_string att)) in
- start_element_handler parser_ ctx att_tag [];
+ start_element_handler parser_ ctx att [];
let n = top ctx in
n.data <- value;
n.kind <- Tree.NodeKind.Attribute;
- end_element_handler parser_ ctx att_tag
+ end_element_handler parser_ ctx att
and consume_closing ctx n =
if n.next_sibling != dummy then
and processing_instruction_handler parser_ ctx tag data =
do_text parser_ ctx;
- let pi = QName.to_string
- (QName.processing_instruction (QName.of_string tag))
- in
- start_element_handler parser_ ctx pi [];
+ start_element_handler parser_ ctx tag [];
let node = top ctx in
node.data <- data;
node.kind <- Tree.NodeKind.ProcessingInstruction;
- end_element_handler parser_ ctx pi
+ end_element_handler parser_ ctx tag
let character_data_handler _parser ctx text =
let rec print_attributes ?(sep=true) out tree_ node =
if (node.kind == Tree.NodeKind.Attribute) then
- let tag = QName.to_string (QName.remove_prefix node.tag) in
+ let tag = QName.to_string node.tag in
if sep then output_char out ' ';
output_string out tag;
output_string out "=\"";
output_string out "-->"
| ProcessingInstruction ->
output_string out "<?";
- output_string out (QName.to_string (QName.remove_prefix node.tag));
+ output_string out (QName.to_string node.tag);
output_char out ' ';
output_string out node.data;
output_string out "?>"