Hi, > Von: "Theodore H. Smith" <[EMAIL PROTECTED]> > Datum: Fri, 30 Dec 2005 15:10:08 +0000 > > Hi people,
[...] > So, I got this problem with xmlCopyNode, it's putting a namespace > into the XML, when I don't actually want one there. > > before I had this: > > <metadata> > <schema>ADL SCORM</schema> > <schemaversion>CAM 1.3</schemaversion> > </metadata> > > then I end up with this: > > <metadata xmlns="http://www.imsglobal.org/xsd/imscp_v1p1"> > <schema>ADL SCORM</schema> > <schemaversion>CAM 1.3</schemaversion> > </metadata> > > Is there some way to disable this behaviour? I don't think there's a public function in Libxml2 which does what you want. What I currently use to avoid creation of namespace declarations is the following: - Walk the tree to be copied on your side. - Build the resulting tree-copy on your side. - Use xmlDocCopyNode() with an @extended argument of 0. Doing this will only copy the rudimental element node; i.e. no ns-decls, no children and no attributes. - Copy the already existent ns-decls on your side. - Copy attribute nodes on your side. - Finally use xmlDOMWrapReconcileNamespaces() to ensure that node->ns entries point to in-scope ns-decls. Actually a public version of xmlStaticCopyNode() would do the job you want if you have a @parent argument at hand. It would search the ns-decls of the destination tree as well, thus would avoid creation of redundant ns-decls. Does anyone see problems wrt adding a public wrapper for xmlStaticCopyNode() which also takes a @parent argument? However, in the long term I would like to add a function similar to xmlDOMWrapAdoptNode(), which does a copy of the tree and provides customizable handling of ns-references. Regards, Kasimier _______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] http://mail.gnome.org/mailman/listinfo/xml
