Hi Daniel, All,
one of the users of the Perl bindings has noticed that after
clonning a subtree (using xmlCopyNode internally) the clonned
XML_XINCLUDE_START (very useful BTW) nodes do not carry their
original attributes (such as href and xpointer).
The attached patch for tree.c fixes this. I'm not sure if
XML_XINCLUDE_END can ever carry properties; if not, safely remove
the 2 corresponding lines from the patch.
Thanks in advance for considering the patch,
-- Petr
--- tree.c~ 2006-10-20 14:54:19.000000000 +0200
+++ tree.c 2007-02-01 15:51:30.000000000 +0100
@@ -3915,7 +3915,9 @@
if (!extended)
goto out;
- if ((node->type == XML_ELEMENT_NODE) && (node->nsDef != NULL))
+ if ((node->type == XML_ELEMENT_NODE ||
+ node->type == XML_XINCLUDE_START ||
+ node->type == XML_XINCLUDE_END) && (node->nsDef != NULL))
ret->nsDef = xmlCopyNamespaceList(node->nsDef);
if (node->ns != NULL) {
@@ -3942,7 +3944,9 @@
ret->ns = ns;
}
}
- if ((node->type == XML_ELEMENT_NODE) && (node->properties != NULL))
+ if ((node->type == XML_ELEMENT_NODE ||
+ node->type == XML_XINCLUDE_START ||
+ node->type == XML_XINCLUDE_END) && (node->properties != NULL))
ret->properties = xmlCopyPropList(ret, node->properties);
if (node->type == XML_ENTITY_REF_NODE) {
if ((doc == NULL) || (node->doc != doc)) {
_______________________________________________
xml mailing list, project page http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml