projects
/
SXSI
/
xpathcomp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
i
[SXSI/xpathcomp.git]
/
src
/
nodeSet.ml
diff --git
a/src/nodeSet.ml
b/src/nodeSet.ml
index
ad3768b
..
0828029
100644
(file)
--- a/
src/nodeSet.ml
+++ b/
src/nodeSet.ml
@@
-100,11
+100,18
@@
module Mat : S with type t = Tree.node mat =
let conscat4 e l1 l2 l3 l4 = conscat e l1 (concat l2 (concat l3 l4))
let subtree_tags tree node tag =
let conscat4 e l1 l2 l3 l4 = conscat e l1 (concat l2 (concat l3 l4))
let subtree_tags tree node tag =
- { clist = SubtreeTags(tree, node, tag);
- length = Tree.subtree_tags tree node tag }
+ let len = Tree.subtree_tags tree node tag in
+ if len == 0 then empty
+ else
+ { clist = SubtreeTags(tree, node, tag);
+ length = len }
+
let subtree_elements tree node =
let subtree_elements tree node =
- { clist = SubtreeElts(tree, node);
- length = Tree.subtree_elements tree node }
+ let len = Tree.subtree_elements tree node in
+ if len == 0 then empty
+ else
+ { clist = SubtreeElts(tree, node);
+ length = len }
let fst_tagged tree t tag =
if Tree.tag tree t == tag then t
let fst_tagged tree t tag =
if Tree.tag tree t == tag then t
@@
-192,8
+199,12
@@
module Mat : S with type t = Tree.node mat =
Unix.openfile name [ Unix.O_WRONLY; Unix.O_TRUNC; Unix.O_CREAT ] 0o666,
Unix.close
in
Unix.openfile name [ Unix.O_WRONLY; Unix.O_TRUNC; Unix.O_CREAT ] 0o666,
Unix.close
in
- iter (fun node -> Tree.print_xml v node fd) l;
- Tree.flush v fd;
+ ignore (Unix.write fd "<xml_result>\n" 0 13);
+ if l.length > 0 then begin
+ iter (fun node -> Tree.print_xml v node fd) l;
+ Tree.flush v fd;
+ end;
+ ignore (Unix.write fd "</xml_result>\n" 0 14);
finish fd
end
finish fd
end