1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-06-13 19:21:37 +03:00

fixed xmlReconciliateNs(), added a Python test/example for inter-document

* tree.c python/tests/Makefile.am python/tests/cutnpaste.py:
  fixed xmlReconciliateNs(), added a Python test/example for
  inter-document cut'n paste
* python/libxml.py: fixed node.doc on document nodes and added
  xpathEval() onto node objects
Daniel
This commit is contained in:
Daniel Veillard
2002-03-07 00:05:35 +00:00
parent 4e0e297468
commit f742d34179
5 changed files with 90 additions and 5 deletions

View File

@ -181,8 +181,11 @@ class xmlCore:
elif attr == "doc":
ret = libxml2mod.doc(self._o)
if ret == None:
return None
return xmlDoc(_doc=ret)
if self.type == "document_xml" or self.type == "document_html":
return xmlDoc(_obj=self._o)
else:
return None
return xmlDoc(_obj=ret)
raise AttributeError,attr
#
@ -235,7 +238,7 @@ class xmlCore:
ret = libxml2mod.doc(self._o)
if ret == None:
return None
return xmlDoc(_doc=ret)
return xmlDoc(_obj=ret)
def free(self):
libxml2mod.freeDoc(self._o)
@ -250,6 +253,20 @@ class xmlCore:
def saveTo(self, file, encoding = None, format = 0):
return libxml2mod.saveNodeTo(self._o, file, encoding, format)
#
# Selecting nodes using XPath, a bit slow because the context
# is allocated/freed every time but convenient.
#
def xpathEval(self, expr):
doc = self.doc
if doc == None:
return None
ctxt = doc.xpathNewContext()
ctxt.setContextNode(self)
res = ctxt.xpathEval(expr)
ctxt.xpathFreeContext()
return res
#
# converters to present a nicer view of the XPath returns
#