in rust/src/main.rs [129:154]
fn transform_outside(node: NodeRef) -> Option<Vec<NodeRef>> {
// Pre order traversal
if let kuchiki::NodeData::Element(x) = node.data() {
let x_attr = (x.attributes).clone().into_inner();
if x_attr.contains("itemtype") {
let itemtype = x_attr.get("itemtype").unwrap();
if itemtype == "https://schema.org/Question" {
let mut vec = Vec::new();
vec.push(node.clone());
return Some(vec);
}
}
}
let mut vec = Vec::new();
for child in node.children() {
let tmp_vec = transform_outside(child.clone());
if let Some(x) = tmp_vec {
vec.extend(x);
}
}
if vec.len() > 0 {
return Some(vec);
} else {
return None;
}
}