Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
37
Task/XML-Input/Rust/xml-input-1.rust
Normal file
37
Task/XML-Input/Rust/xml-input-1.rust
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
extern crate xml; // provided by the xml-rs crate
|
||||
use xml::{name::OwnedName, reader::EventReader, reader::XmlEvent};
|
||||
|
||||
const DOCUMENT: &str = r#"
|
||||
<Students>
|
||||
<Student Name="April" Gender="F" DateOfBirth="1989-01-02" />
|
||||
<Student Name="Bob" Gender="M" DateOfBirth="1990-03-04" />
|
||||
<Student Name="Chad" Gender="M" DateOfBirth="1991-05-06" />
|
||||
<Student Name="Dave" Gender="M" DateOfBirth="1992-07-08">
|
||||
<Pet Type="dog" Name="Rover" />
|
||||
</Student>
|
||||
<Student DateOfBirth="1993-09-10" Gender="F" Name="Émily" />
|
||||
</Students>
|
||||
"#;
|
||||
|
||||
fn main() -> Result<(), xml::reader::Error> {
|
||||
let parser = EventReader::new(DOCUMENT.as_bytes());
|
||||
|
||||
let tag_name = OwnedName::local("Student");
|
||||
let attribute_name = OwnedName::local("Name");
|
||||
|
||||
for event in parser {
|
||||
match event? {
|
||||
XmlEvent::StartElement {
|
||||
name,
|
||||
attributes,
|
||||
..
|
||||
} if name == tag_name => {
|
||||
if let Some(attribute) = attributes.iter().find(|&attr| attr.name == attribute_name) {
|
||||
println!("{}", attribute.value);
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
27
Task/XML-Input/Rust/xml-input-2.rust
Normal file
27
Task/XML-Input/Rust/xml-input-2.rust
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
extern crate roxmltree;
|
||||
|
||||
const DOCUMENT: &str = r#"
|
||||
<Students>
|
||||
<Student Name="April" Gender="F" DateOfBirth="1989-01-02" />
|
||||
<Student Name="Bob" Gender="M" DateOfBirth="1990-03-04" />
|
||||
<Student Name="Chad" Gender="M" DateOfBirth="1991-05-06" />
|
||||
<Student Name="Dave" Gender="M" DateOfBirth="1992-07-08">
|
||||
<Pet Type="dog" Name="Rover" />
|
||||
</Student>
|
||||
<Student DateOfBirth="1993-09-10" Gender="F" Name="Émily" />
|
||||
</Students>
|
||||
"#;
|
||||
|
||||
fn main() -> Result<(), roxmltree::Error> {
|
||||
let doc = roxmltree::Document::parse(DOCUMENT)?;
|
||||
for node in doc
|
||||
.root()
|
||||
.descendants()
|
||||
.filter(|&child| child.has_tag_name("Student"))
|
||||
{
|
||||
if let Some(name) = node.attribute("Name") {
|
||||
println!("{}", name);
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue