使用xpath提取word的文本数据
2021-11-01 本文已影响0人
更真实
借助浏览器的xpath功能提取word的文本数据,实现word数据转换成json格式
实现功能
1. 数据样式
image.png2. 解析结果
image.png实现方式
1. word数据导入到雀语中
2. 使用浏览器的xpath获取数据,数据打印控制台
image.pngfunction 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);