XUpdate Processor
Project description
Introduction
Apply xupdate diff on XML documents.
Testing
To run tests:
python -m unittest discover src
or, using zc.buildout and zope.testrunner:
buildout ./bin/test
Usage
just like this:
>>> from xupdate_processor import applyXUpdate >>> from lxml import etree >>> xml_doc_string = """<?xml version="1.0"?> <erp5> <object portal_type="Test"> <title>A</title> </object> <object portal_type="Test"> <title>A</title> </object> <object portal_type="Test"> <title>A</title> </object> </erp5> """ >>> xml_xu_string = """<?xml version="1.0"?> <xupdate:modifications xmlns:xupdate="http://www.xmldb.org/xupdate" version="1.0"> <xupdate:update select="/erp5/object[2]/title">B</xupdate:update> <xupdate:update select="/erp5/object[3]/title">C</xupdate:update> </xupdate:modifications> """ >>> result_tree = applyXUpdate(xml_xu_string=xml_xu_string, xml_doc_string=xml_doc_string) >>> print etree.tostring(result_tree, pretty_print=True) <erp5> <object portal_type="Test"> <title>A</title> </object> <object portal_type="Test"> <title>B</title> </object> <object portal_type="Test"> <title>C</title> </object> </erp5>
History
0.5 (2022-09-14)
Support python3 and python2.7 by dropping dependency on PyXML
0.4 (2010-01-21)
- [Fix] sub element might have been append in wrong order
[nicolas Delaby]
0.3 2010-01-19
Update setup.py
0.2 (2010-01-19)
- refactor egg structure directory
[nicolas Delaby]
- Use unittest module instead of DOCTEST
[nicolas Delaby]
- add PyXML dependency to support sax parser with xml.sax.handler.feature_namespace_prefixes feature.
[nicolas Delaby]
remove zope.interface dependency
[Fix] sub element might have been append in wrong order
0.1 (2009-12-12)
- Initial implementation
[nicolas Delaby]