pugixml 0.6.0

Last updated:

0 purchases

pugixml 0.6.0 Image
pugixml 0.6.0 Images
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.