Skip to main content

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]

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page