在最终版本中获取HTML Ast

时间:2016-10-10 09:20:06

标签: angular

上下文

我正在为我的应用程序中的某些html元素创建一个提取器,需要将某些元素(如<foo key="FOO_KEY">My Value</foo>)提取为json以用于i18n目的。

由于某些特定需求,我无法使用angular2 i18n系统,因此我使用componentpipeservice创建了自己的系统。

要提取服务调用,我可以包装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

1 个答案:

答案 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';