xmlparser is a low-level, pull-based, zero-allocation XML 1.0 parser.
rust
for token in xmlparser::Tokenizer::from("<tagname name='value'/>") {
println!("{:?}", token);
}
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.
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.<root><child></root></child>
will be parsed without errors. You should check for this manually.<item a="v1" a="v2"/>
will be parsed without errors. You should check for this manually.Dependency: Rust >= 1.18
Add this to your Cargo.toml
:
toml
[dependencies]
xmlparser = "0.4"
Licensed under either of
at your option.
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.