@Override
  public @NotNull String filterText(@NotNull String text, @NotNull TemplateToken token) {
    XmlTag tag = token.getXmlTag();
    if (tag != null && !tag.getText().isEmpty()) {
      tag.accept(new XmlElementVisitor() {
        @Override
        public void visitXmlTag(final @NotNull XmlTag tag) {
          if (!tag.isEmpty()) {
            final XmlTagValue tagValue = tag.getValue();
            final Matcher matcher = PATTERN.matcher(tagValue.getText());
            if (matcher.matches()) {
              tagValue.setText(matcher.replaceAll(""));
            }
          }
          tag.acceptChildren(this);
        }
      });
      return tag.getText();
    }
    else {
      return PATTERN.matcher(token.getTemplateText()).replaceAll("");
    }
  }
@Override
  public @NotNull String filterText(@NotNull String text, @NotNull TemplateToken token)