簡體   English   中英

使用JavaScript在XML文件中定位關鍵字

[英]Using JavaScript to locate keywords in XML files

在搜索特定的關鍵字提及時,我最近使用了python腳本將數千個XML文件解析為一個CSV。 除了關鍵字之外,我的腳本還檢索了找到每個關鍵字的行號和XML文件。

我想知道我的關鍵字嵌套在哪個元素中,以及之前至少有兩個或三個父元素。

例如,如果在子元素<canine><p>中找到“黃金獵犬”,我想知道前面的兩個或三個父元素: <species><genus><family> ,以及以此類推。

到目前為止,這是我所擁有的,但是我不確定自己是否走對了。 我時間緊迫,現在才編程一個月。 我僅用行號就能做到嗎?

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

為什么不這樣使用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());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM