Reading a file

As with a standard file, we first have to open the file and create a reader:

let file = File::open("my_xmlfile.xml").unwrap();
let reader =BufferedReader::new(file);

Next, we start the reading. Unlike a normal reader, we use EventReader. This provides a number of events (such as StartElement, EndElement, and Error), which are required for reading in from the differing nodes:

let mut xml_parser = EventReader::new(reader); 

Next, we iterate through the file, as follows:

for e in xml_parser.events() { 
     match e { 
         StartElement { name, .. } => { 
              println!("{}", name); 
         } 
         EndElement {name} => { 
             println!("{}", name); 
         } 
         Error(e) => { 
             println!("Error in file: {}", e); 
      } 
      _ => {} 
   } 
} 

In the preceding snippet, _ => {} essentially means that you don't care what is left, do something with it (in this case, the something is nothing). You will see the symbol _ quite a bit in Rust. Commonly, it is used in loops where the variable being acted on is never used, for example:

for _ in something() {...} 

We aren't going to use the iterator; we just need something to enable the iteration to go to the next value.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset