fn transform_outside()

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;
    }
}