【发布时间】:2018-10-11 15:06:43
【问题描述】:
搜索特定关键字提及,我最近使用 python 脚本将数千个 XML 文件解析为单个 CSV。除了关键字之外,我的脚本还检索了每个关键字所在的行号和 XML 文件。
我想知道我的关键字嵌套在哪个元素中,以及之前的至少两个或三个父元素。
例如,如果在子元素<canine>的<p>中找到“金毛猎犬”,我想知道前面的两个或三个父元素:<species>、<genus>和@987654325 @,等等。
这是我目前所拥有的,但我不确定我是否走在正确的轨道上。我的时间很紧,现在只编程了一个月。我可以只用一个行号来做这件事吗?
function getHierarchy(node, parentCount, list = []){
const parent = node.parentElement;
if(!!!parent) return list;
if(parentCount !== undefined && list.length === parentCount) return list;
list.push(parent);
return getHierarchy(parent, parentCount, list);
}
function readXml(xmlString){
const parser = new DOMParser();
return parser.parseFromString(xmlString, 'text/xml');
}
const xml = readXml(xmlData);
const target = Array.from(xml.getElementsByTagName('example')).find(p=>p.textContent.trim() === 'example');
const hierarchy = getHierarchy(target, 3);
console.log(hierarchy);
【问题讨论】:
标签: javascript xml csv