pugixml 0.6.0

Creator: railscoder56

Last updated:

Add to Cart

Description:

pugixml 0.6.0

Python bindings for pugixml






pugixml is a light-weight C++ XML processing library. It features:

DOM-like interface with rich traversal/modification capabilities
Extremely fast non-validating XML parser which constructs the DOM tree from an XML file/buffer
XPath 1.0 implementation for complex data-driven tree queries
Full Unicode support with Unicode interface variants and automatic encoding conversions

Documentation

pugixml-python

API Reference


pugixml

Quick-start guide
Reference manual



Example
Loading XML document from file:
from pugixml import pugi
doc = pugi.XMLDocument()
result = doc.load_file('xgconsole.xml')
if not result:
print('parse error: status=%r description=%r' % (result.status, result.description()))

Searching for nodes/attributes with predicates:
tools = doc.child('Profile').child('Tools')

# Find child via predicate (looks for direct children only)
node = tools.find_child(lambda x: x.attribute('AllowRemote').as_bool())
print(node.attribute('Filename').value())

# Find node via predicate (looks for all descendants in depth-first order)
node = doc.find_node(lambda x: x.attribute('AllowRemote').as_bool())
print(node.attribute('Filename').value())

# Find attribute via predicate
attr = tools.last_child().find_attribute(lambda x: x.name() == 'AllowRemote')
print(attr.value())

Selecting nodes via XPath expression:
tools = doc.select_nodes('/Profile/Tools/Tool[@AllowRemote="true" and @DeriveCaptionFrom="lastparam"]')
for tool in tools:
print(tool.node().attribute('Filename').value())

Using query objects and variables:
varset = pugi.XPathVariableSet()
var = varset.add('remote', pugi.XPATH_TYPE_BOOLEAN)
query_remote_tools = pugi.XPathQuery('/Profile/Tools/Tool[@AllowRemote = string($remote)]', varset)

var.set(True)
tools_remote = query_remote_tools.evaluate_node_set(doc)
for tool in tools_remote:
tool.node().print(pugi.PrintWriter())

var.set(False)
tools_local = query_remote_tools.evaluate_node_set(doc)
for tool in tools_local:
tool.node().print(pugi.PrintWriter())

Installation
Installing a package from PyPI
pip install pugixml

Building a package from source


Requirements:

C++17 compatible compiler (see supported compilers)
CMake ≥ 3.12



Installing a package from PyPI:
pip install --no-binary=:all: pugixml



Installing the development version from the git repository:
pip install git+https://github.com/miute/pugixml-python.git



License

pugixml-python is licensed under the MIT License.
pugixml is licensed under the MIT License.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.