【问题标题】:Using JavaScript to locate keywords in XML files使用 JavaScript 在 XML 文件中定位关键字
【发布时间】: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


    【解决方案1】:

    为什么不用这样的jQuery:

    const xml = "<family><genus><species><canine><p>golden retriever</p></canine></species></genus></family>";
    
    const xmlDoc = $.parseXML(xml)
    $xml = $(xmlDoc)
    const $title = $xml.find( ":contains('golden retriever')");
    console.log($title.html());
    

    【讨论】:

    • 我会,但我不知道这些元素。我只知道找到关键字的行号和文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多