我正在为我的应用程序中的某些html元素创建一个提取器,需要将某些元素(如<foo key="FOO_KEY">My Value</foo>
)提取为json以用于i18n目的。
由于某些特定需求,我无法使用angular2 i18n系统,因此我使用component
,pipe
和service
创建了自己的系统。
要提取服务调用,我可以包装typescript
编译器以及我所做的事情。
自从我的工具的最后一个版本(使用angular2 v2.0.0-rc.1
制作)以来,我完全能够使用这些导入获得HTML Ast:
import {HtmlParser} from "@angular/compiler/src/html_parser";
import {HtmlElementAst, HtmlAttrAst} from "@angular/compiler/src/html_ast";
解析html模板,然后使用Ast获取我需要的内容。
我更新到angular2 v2.0.X
,我的导入不再导出了。因此,我无法再提取HTML Ast,这是一个很大的问题,因为它是从html中提取数据的唯一正确方法(正则表达式不是一个选项,请参阅RegEx match open tags except XHTML self-contained tags)
答案 0 :(得分:1)
在v2.0.0-rc.5中做了重大修改。今天它看起来像:
import { HtmlParser } from "@angular/compiler/src/ml_parser/html_parser";
import { Element, Attribute } from '@angular/compiler/src/ml_parser/ast';