xmlparser

Build Status Crates.io Documentation

xmlparser is a low-level, pull-based, zero-allocation XML 1.0 parser.

Example

rust for token in xmlparser::Tokenizer::from("<tagname name='value'/>") { println!("{:?}", token); }

Why a new library

The main idea of this library is to provide a fast, low-level and complete XML parser.

Unlike other XML parsers, this one can return tokens not with &str/&[u8] data, but with StrSpan objects, which contain a position of the data in the original document. Which can be very useful if you want to post-process tokens even more and want to return errors with a meaningful position.

So, this is basically an XML parser framework that can be used to write parsers for XML-based formats, like SVG and to construct a DOM.

At the time of writing the only option was quick-xml (v0.10), which does not support DTD and token positions.

Benefits

Limitations

Safety

Usage

Dependency: Rust >= 1.18

Add this to your Cargo.toml:

toml [dependencies] xmlparser = "0.4"

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.