反向Javascript模板语言
是否有类似于模板引擎(la Mustache.js)的东西可以“反向”进行模板生成 这意味着我提供呈现的html和模板文件,通过引擎运行它,并从中获取数据(比如JSON结构)反向Javascript模板语言,javascript,templating,Javascript,Templating,是否有类似于模板引擎(la Mustache.js)的东西可以“反向”进行模板生成 这意味着我提供呈现的html和模板文件,通过引擎运行它,并从中获取数据(比如JSON结构) 我意识到这是一种可以用“屏幕抓取库”来完成的事情,但是我从来没有见过一个屏幕抓取库使用胡子样式的模板(不管这些模板叫什么) 通用解决方案不存在。例如,您永远无法反转以下模板:{{foo}{{{bar}},因为无法找到第一个胡子在哪里停止,第二个胡子在哪里开始 例如: html: 'hello world!' templat
我意识到这是一种可以用“屏幕抓取库”来完成的事情,但是我从来没有见过一个屏幕抓取库使用胡子样式的模板(不管这些模板叫什么) 通用解决方案不存在。例如,您永远无法反转以下模板:{{foo}{{{bar}},因为无法找到第一个胡子在哪里停止,第二个胡子在哪里开始 例如:
html: 'hello world!'
template: '{{foo}}{{bar}}'
model: {
foo: '',
bar: 'hello world!'
}
model2: {
foo: 'hello world!',
bar: ''
}
model和model2都从模板中呈现完全相同的html,因此它们都是有效的反转
但是,如果您为模板制定一些规则,就可以做到不含糊
规则:
<div>
<p>{{title}}</p>
<ul>
{{#list}}
<li>{{item}}</li>
{{/list}}
</ul>
</div>
{{title}}
{{{#列表}
- {{item}}
{{/list}
但是在之前添加另一个我找到了使用另一个模板系统的解决方案:。它似乎也有同样的限制。Parseur是一个反向模板引擎。 它还包括一个模板编辑器来创建那些“反向”模板。 当然,Parseur不能创造奇迹(参见@blerik answer),但它可以重复地从类似文档中提取数据 一个很好的特性是,您可以添加更多模板,它将并行检查所有模板,并选择可以提取最多字段的模板
输出是JSON格式的,字段可以选择格式化为数字、日期、地址、嵌套格式,甚至是表格格式。如果使用ruby,nokogiri很好地解决了这个问题,尽管它并不完全是您所描述的。还有一个名为Scrapemark的旧python库,它基本上就是这样做的。