pub struct ElementBuilder { /* private fields */ }
Expand description
An Element Builder, building Element
s from Event
s as produced by Parser
use xml::{Parser, ElementBuilder};
let mut parser = Parser::new();
let mut builder = ElementBuilder::new();
parser.feed_str("<example/>");
for result in parser.filter_map(|event| builder.handle_event(event)) {
println!("{}", result.unwrap());
}
Implementations§
Source§impl ElementBuilder
impl ElementBuilder
Sourcepub fn new() -> ElementBuilder
pub fn new() -> ElementBuilder
Returns a new ElementBuilder
Examples found in repository?
examples/roundtrip.rs (line 33)
14fn main() {
15 let mut args = std::env::args();
16 let name = args.next().unwrap_or_else(|| "roundtrip".to_string());
17 let path = args.next();
18 let path = if let Some(ref path) = path {
19 path
20 } else {
21 println!("Usage: {} <file>", name);
22 return;
23 };
24 let mut rdr = match File::open(path) {
25 Ok(file) => file,
26 Err(err) => {
27 println!("Couldn't open file: {}", err);
28 std::process::exit(1);
29 }
30 };
31
32 let mut p = xml::Parser::new();
33 let mut e = xml::ElementBuilder::new();
34
35 let mut string = String::new();
36 if let Err(err) = rdr.read_to_string(&mut string) {
37 println!("Reading failed: {}", err);
38 std::process::exit(1);
39 };
40
41 p.feed_str(&string);
42 for event in p.filter_map(|x| e.handle_event(x)) {
43 // println!("{:?}", event);
44 match event {
45 Ok(e) => println!("{}", e),
46 Err(e) => println!("{}", e),
47 }
48 }
49}
Sourcepub fn define_prefix(&mut self, prefix: String, ns: String)
pub fn define_prefix(&mut self, prefix: String, ns: String)
Bind a prefix to a namespace
Sourcepub fn set_default_ns(&mut self, ns: String)
pub fn set_default_ns(&mut self, ns: String)
Set the default namespace
Sourcepub fn handle_event(
&mut self,
e: Result<Event, ParserError>,
) -> Option<Result<Element, BuilderError>>
pub fn handle_event( &mut self, e: Result<Event, ParserError>, ) -> Option<Result<Element, BuilderError>>
Let the builder process an Event
to ultimately build an Element
.
While no root element has been finished None
is returned.
Once sufficient data has been received an Element
is returned as Some(Ok(elem))
.
Upon Error Some(Err("message"))
is returned.
Examples found in repository?
examples/roundtrip.rs (line 42)
14fn main() {
15 let mut args = std::env::args();
16 let name = args.next().unwrap_or_else(|| "roundtrip".to_string());
17 let path = args.next();
18 let path = if let Some(ref path) = path {
19 path
20 } else {
21 println!("Usage: {} <file>", name);
22 return;
23 };
24 let mut rdr = match File::open(path) {
25 Ok(file) => file,
26 Err(err) => {
27 println!("Couldn't open file: {}", err);
28 std::process::exit(1);
29 }
30 };
31
32 let mut p = xml::Parser::new();
33 let mut e = xml::ElementBuilder::new();
34
35 let mut string = String::new();
36 if let Err(err) = rdr.read_to_string(&mut string) {
37 println!("Reading failed: {}", err);
38 std::process::exit(1);
39 };
40
41 p.feed_str(&string);
42 for event in p.filter_map(|x| e.handle_event(x)) {
43 // println!("{:?}", event);
44 match event {
45 Ok(e) => println!("{}", e),
46 Err(e) => println!("{}", e),
47 }
48 }
49}
Auto Trait Implementations§
impl Freeze for ElementBuilder
impl RefUnwindSafe for ElementBuilder
impl Send for ElementBuilder
impl Sync for ElementBuilder
impl Unpin for ElementBuilder
impl UnwindSafe for ElementBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more