summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Wellnhofer <wellnhofer@aevum.de>2014-12-19 00:08:35 +0100
committerNick Wellnhofer <wellnhofer@aevum.de>2014-12-19 00:09:03 +0100
commitf54d6a929af2a570396f0595a0e29064c908c12e (patch)
tree00be7bfb4b3e1c92ddb614e0aff09c56735f6362
parent7580ce0a7f53891de520fed2c0e360266c286da6 (diff)
downloadlibxml2-f54d6a929af2a570396f0595a0e29064c908c12e.tar.gz
Account for ID attributes in xmlSetTreeDoc
-rw-r--r--tree.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/tree.c b/tree.c
index 6ec92236..c6323b4c 100644
--- a/tree.c
+++ b/tree.c
@@ -2799,8 +2799,19 @@ xmlSetTreeDoc(xmlNodePtr tree, xmlDocPtr doc) {
if(tree->type == XML_ELEMENT_NODE) {
prop = tree->properties;
while (prop != NULL) {
+ if (prop->atype == XML_ATTRIBUTE_ID) {
+ xmlRemoveID(tree->doc, prop);
+ }
+
prop->doc = doc;
xmlSetListDoc(prop->children, doc);
+
+ if (xmlIsID(doc, tree, prop)) {
+ xmlChar *idVal = xmlNodeListGetString(doc, prop->children,
+ 1);
+ xmlAddID(NULL, doc, idVal, prop);
+ }
+
prop = prop->next;
}
}