Family Day update
This commit is contained in:
parent
aac6731f2c
commit
9ad63ea473
2442 changed files with 39761 additions and 8255 deletions
43
Task/XML-Input/MATLAB/xml-input.m
Normal file
43
Task/XML-Input/MATLAB/xml-input.m
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
RootXML = com.mathworks.xml.XMLUtils.createDocument('Students');
|
||||
docRootNode = RootXML.getDocumentElement;
|
||||
thisElement = RootXML.createElement('Student');
|
||||
thisElement.setAttribute('Name','April')
|
||||
thisElement.setAttribute('Gender','F')
|
||||
thisElement.setAttribute('DateOfBirth','1989-01-02')
|
||||
docRootNode.appendChild(thisElement);
|
||||
thisElement = RootXML.createElement('Student');
|
||||
thisElement.setAttribute('Name','Bob')
|
||||
thisElement.setAttribute('Gender','M')
|
||||
thisElement.setAttribute('DateOfBirth','1990-03-04')
|
||||
docRootNode.appendChild(thisElement);
|
||||
thisElement = RootXML.createElement('Student');
|
||||
thisElement.setAttribute('Name','Chad')
|
||||
thisElement.setAttribute('Gender','M')
|
||||
thisElement.setAttribute('DateOfBirth','1991-05-06')
|
||||
docRootNode.appendChild(thisElement);
|
||||
thisElement = RootXML.createElement('Student');
|
||||
thisElement.setAttribute('Name','Dave')
|
||||
thisElement.setAttribute('Gender','M')
|
||||
thisElement.setAttribute('DateOfBirth','1992-07-08')
|
||||
node = RootXML.createElement('Pet');
|
||||
node.setAttribute('Type','dog')
|
||||
node.setAttribute('name','Rover')
|
||||
thisElement.appendChild(node);
|
||||
docRootNode.appendChild(thisElement);
|
||||
thisElement = RootXML.createElement('Student');
|
||||
thisElement.setAttribute('Name','Émily')
|
||||
thisElement.setAttribute('Gender','F')
|
||||
thisElement.setAttribute('DateOfBirth','1993-09-10')
|
||||
docRootNode.appendChild(thisElement);
|
||||
clearvars -except RootXML
|
||||
|
||||
for I=0:1:RootXML.getElementsByTagName('Student').item(0).getAttributes.getLength-1
|
||||
if strcmp(RootXML.getElementsByTagName('Student').item(0).getAttributes.item(I).getName,'Name')
|
||||
tag=I;
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
for I=0:1:RootXML.getElementsByTagName('Student').getLength-1
|
||||
disp(RootXML.getElementsByTagName('Student').item(I).getAttributes.item(tag).getValue)
|
||||
end
|
||||
27
Task/XML-Input/Phix/xml-input.phix
Normal file
27
Task/XML-Input/Phix/xml-input.phix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
include builtins/xml.e
|
||||
constant xml = """
|
||||
<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>
|
||||
"""
|
||||
sequence x = xml_parse(xml)
|
||||
|
||||
procedure traverse(sequence x)
|
||||
if x[XML_TAGNAME]="Student" then
|
||||
?xml_get_attribute(x,"Name")
|
||||
else
|
||||
x = x[XML_CONTENTS]
|
||||
if not string(x) then
|
||||
for i=1 to length(x) do
|
||||
traverse(x[i])
|
||||
end for
|
||||
end if
|
||||
end if
|
||||
end procedure
|
||||
traverse(x[XML_CONTENTS])
|
||||
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