美文网首页
使用xpath提取word的文本数据

使用xpath提取word的文本数据

作者: 更真实 | 来源:发表于2021-11-01 00:01 被阅读0次

    借助浏览器的xpath功能提取word的文本数据,实现word数据转换成json格式

    实现功能

    1. 数据样式

    image.png

    2. 解析结果

    image.png

    实现方式

    1. word数据导入到雀语中

    2. 使用浏览器的xpath获取数据,数据打印控制台

    image.png
    function wordParser(){
        // 上下文
        let context={
            answers:{},// 存放问题、答案键值对
            currentQuestion:''// 当前问题
        };
        // 按行解析
        let parse=()=>{
            let parser=parseQuestion;
            $x('//ne-p').forEach((line)=>{
                parser=parser(context,line);
            })
            console.log(context);
        };
        // 解析问题
        let parseQuestion=(context,line)=>{
            if(line.innerText.trim().length<=0){
                return parseQuestion;
            }
            context.answers[line.innerText.trim().replaceAll('"','')]=[];
            context.currentQuestion=line.innerText.trim().replaceAll('"','');
            return parseAnswer;
        };
        // 解析问题的答案
        let parseAnswer=(context,line)=>{
            if(line.getElementsByTagName('ne-text')[0].innerText.trim().length==0){// 解析新的问题
                return parseQuestion;
            }       
            let texts=line.getElementsByTagName('ne-text'); 
            if(texts[0].style.color==='red'){   
                context.answers[context.currentQuestion].push(line.innerText.substring(0,line.innerText.length-1).substring(2,line.innerText.length).replaceAll('"',''));   
            }
            return parseAnswer;// 可能有多个答案
        }
        return {context,parse};
    }
    let result=wordParser();
    result.parse();
    console.log(result.context.answers);
    

    3. 复制提取结果

    image.png

    相关文章

      网友评论

          本文标题:使用xpath提取word的文本数据

          本文链接:https://www.haomeiwen.com/subject/qcanaltx.html