如何将HTML中选定的<span>部分转换为DOCX?
仅转换HTML中内容为DOCX的方法
不需要用pandoc模板,更高效的方式是先提取HTML里的所有内容,再用pandoc转换。以下是几种可行方案:
方案1:使用专门的HTML解析工具(推荐)
这类工具能正确处理HTML的结构(包括嵌套标签、换行等),避免文本处理工具的误判。
用pup工具(需提前安装)
提取所有标签及其内部内容:
pup 'span' input.html > extracted-spans.html
如果只需要里的纯文本:
pup 'span text{}' input.html > extracted-spans.html
然后用你的原有命令转换:
pandoc -s extracted-spans.html -o output.docx
用xmllint(多数系统自带)
提取所有节点(含内部结构):
xmllint --html --xpath '//span' input.html 2>/dev/null > extracted-spans.html
再执行pandoc转换命令即可。
方案2:简单文本处理工具(仅适用于无嵌套的简单HTML)
如果你的HTML结构简单,没有嵌套的标签,可以用sed快速提取:
sed -n '/<span>/,/<\/span>/p' input.html > extracted-spans.html
注意:如果标签跨多行或存在嵌套,这个命令会出错,不推荐用于复杂HTML。
关于pandoc模板的说明
如果一定要用模板实现,其实并不方便——因为pandoc的模板变量体系不会将单独作为可遍历的顶级元素,无法直接在模板中筛选输出内容。因此优先选择上述提取内容的方案。
内容的提问来源于stack exchange,提问作者Packwood
相关产品推荐
相关产品推荐

