xmlparser is a low-level, pull-based, zero-allocation XML 1.0 parser.
```rust extern crate xmlparser;
use xmlparser::FromSpan;
for token in xmlparser::Tokenizer::from_str("
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.
Detailed comparison with other XML parsers can be found at choose-your-xml-rs.
StrSpan
objects, that contains a position of the data in the original document.xml:space
(should be invoked manually).
A properer text escaping is very hard without a DOM construction.Dependency: Rust >= 1.18
Add this to your Cargo.toml
:
toml
[dependencies]
xmlparser = "0.3"
xmlparser is licensed under the MIT.