Examples of TagNode


Examples of cambridge.model.TagNode

               matchedNodes.add(node);
            }
            break;
         case CLOSE_TAG:
            CloseTagToken token = (CloseTagToken) currentToken;
            TagNode tag = null;
            int openIndex = -1;
            for (int i = matchedNodes.size() - 1; i != -1; i--) {
               TemplateNode n = matchedNodes.get(i);
               if (n instanceof TagNode) {
                  TagNode tn = (TagNode) n;
                  if (tn.getEndLine() == 0 && tn.getEndColumn() == 0 && tn.tagNameString.equals(token.getTagName())) {
                     tag = tn;
                     openIndex = i;
                     break;
                  }
               }
View Full Code Here

Examples of cambridge.model.TagNode

   private TagNode tag() throws IOException, TemplateParsingException {
      OpenTagToken token = (OpenTagToken) currentToken;

      Cambridge bindings = Cambridge.getInstance();

      TagNode node = null;

      if (token.getNameSpace() != null) {
         String namespaceUri = getNamespaceUri(token.getNameSpace());
         if (namespaceUri != null) {
            node = bindings.getDynamicTag(new DynamicAttributeKey(namespaceUri, token.getNameSpace(), token.getTagName()));
         }
      }

      boolean dynamicTag = true;
      if (node == null) {
         node = new TagNode();
         dynamicTag = false;
      }

      node.setBeginLine(token.getLineNo());
      node.setBeginColumn(token.getColumn());
      node.setTagName(token.getTagName());
      node.setNameSpace(token.getNameSpace());
      node.setTagNameString(token.value);

      // Match the open tag
      while (peek(1).getType() != TokenType.EOF) {
         nextToken();
         switch (currentToken.getType()) {
            case WS:
            case EOL:
               TextTagPart e = new TextTagPart(currentToken.getActualValue(), currentToken.getLineNo(), currentToken.getColumn());
               e.whitespace = true;
               node.addText(e);
               break;
            case TAG_STRING:
            case ASSIGN:
               node.addText(new TextTagPart(currentToken.getActualValue(), currentToken.getLineNo(), currentToken.getColumn()));
               break;
            case ATTRIBUTE_NAME:
               AttributeNameToken tok = (AttributeNameToken) currentToken;

               if (dynamicTag && tok.getNameSpace() == null) {
                  tok.setNameSpace(node.getNameSpace());
               }

               Attribute element = null;
               StringBuilder textContent = new StringBuilder();
               textContent.append(tok.getActualValue());
               boolean dynamic = false;
               boolean staticAttribute = false;

               String namespaceUri = getNamespaceUri(tok.getNameSpace());
               if (namespaceUri != null && bindings.isRegisteredNamespace(namespaceUri)) {

                  dynamic = true;
                  if (bindings.isStaticAttribute(namespaceUri, tok.getAttributeName())) {
                     staticAttribute = true;
                     element = new StaticAttribute(namespaceUri, tok.getLineNo(), tok.getColumn());
                  } else {
                     element = new DynamicAttribute(namespaceUri, tok.getLineNo(), tok.getColumn());
                  }
               }

               while (true) {
                  if (peek(1).getType() == TokenType.EOF
                     || peek(1).getType() == TokenType.TAG_END
                     || peek(1).getType() == TokenType.EXPRESSION
                     || peek(1).getType() == TokenType.EXTENSION
                     ) {
                     break;
                  }
                  nextToken();

                  boolean exitLoop = false;
                  switch (currentToken.getType()) {
                     case WS:
                     case EOL:
                     case ASSIGN:
                        textContent.append(currentToken.getActualValue());
                        break;
                     case ATTRIBUTE_VALUE:
                        textContent.append(currentToken.getActualValue());

                        if (dynamic) {
                           if (staticAttribute) {
                              ((StaticAttribute) element).setValue(currentToken.value);
                           } else {
                              ((DynamicAttribute) element).setValue(currentToken.value, expressionLanguage.parse(currentToken.value, currentToken.getLineNo(), currentToken.getColumn()));
                           }

                           exitLoop = true;
                           break;
                        }

                        TemplateTokenizer at = new TemplateTokenizer(new StringReader(currentToken.getValue()));

                        ArrayList<AttributeFragment> fragments = new ArrayList<AttributeFragment>();
                        while (at.hasMoreTokens()) {
                           Token attrToken = at.nextToken();
                           switch (attrToken.getType()) {
                              case EXPRESSION:
                                 ExpressionToken expTok = (ExpressionToken) attrToken;
                                 try {
                                    ExpressionNode expNode = new ExpressionNode(attrToken.value, expressionLanguage.parse(attrToken.value, attrToken.getLineNo(), attrToken.getColumn()), expTok.isRawExpression());

                                    if (expTok.getFilters() != null) {
                                       expNode.setFilters(expTok.getFilters());
                                    }
                                    fragments.add(expNode);
                                 } catch (ExpressionParsingException e1) {
                                    throw new TemplateParsingException("Error parsing expression", e1, currentToken.getLineNo(), currentToken.getColumn());
                                 }

                                 break;
                              case EXTENSION:
                                 ExtensionToken extensionToken = (ExtensionToken) attrToken;
                                 ExtensionNode extensionNode = extensionToken.createNode(expressionLanguage);
                                 fragments.add(extensionNode);
                                 break;
                              case WS:
                              case STRING:
                                 StaticFragment st = new StaticFragment(attrToken.value);
                                 fragments.add(st);
                                 break;
                           }
                        }

                        if (fragments.size() == 0 || fragments.size() == 1 && fragments.get(0) instanceof StaticFragment) {
                           element = new SimpleAttribute(currentToken.getLineNo(), currentToken.getColumn());
                           ((SimpleAttribute) element).setValue(currentToken.value);
                        } else {
                           element = new ComplexAttribute(currentToken.getLineNo(), currentToken.getColumn());
                           ((ComplexAttribute) element).setFragments(fragments);
                           AttributeValueToken aTok = (AttributeValueToken) currentToken;
                           if (aTok.getQuotes() == -2) {
                              ((ComplexAttribute) element).setQuote('"');
                           } else if (aTok.getQuotes() == -3) {
                              ((ComplexAttribute) element).setQuote('\'');
                           }
                        }

                        exitLoop = true;
                        break;
                  }

                  if (exitLoop) break;
               }

               if (element == null) {
                  throw new TemplateParsingException("Error parsing template file. Unterminated tag?", currentToken.getLineNo(), currentToken.getColumn());
               }

               element.setAttributeName(tok.getAttributeName());
               element.setAttributeNameSpace(tok.getNameSpace());
               element.setTextContent(textContent.toString());


               int s = node.getTagParts().size();
               if (s > 0) {
                  TagPart te = node.getTagParts().get(s - 1);
                  if (te instanceof TextTagPart) {
                     if (te.isWhiteSpace()) {
                        node.getTagParts().remove(s - 1);
                     }
                  }
               }

               if (firstTag && "xmlns".equalsIgnoreCase(element.getAttributeNameSpace())) {
                  putNamespaceMapping(element.getAttributeName(), element.getValue());
               }

               node.addAttribute(element);
               break;
            case EXPRESSION:
               try {

                  ExpressionToken t = (ExpressionToken) currentToken;
                  ExpressionTagPart p = new ExpressionTagPart(currentToken.value,
                          expressionLanguage.parse(currentToken.value, currentToken.getLineNo(), currentToken.getColumn()),
                          t.isRawExpression(), currentToken.getLineNo(), currentToken.getColumn());

                  if (t.getFilters() != null) {
                     p.setFilters(t.getFilters());
                  }

                  node.addExpression(p);

               } catch (ExpressionParsingException e1) {
                  throw new TemplateParsingException("Error parsing expression", e1, currentToken.getLineNo(), currentToken.getColumn());
               }
               break;
            case EXTENSION:
               ExtensionToken extensionToken = (ExtensionToken) currentToken;
               ExtensionNode extensionTagPart = extensionToken.createNode(expressionLanguage);
               node.addTagPart(extensionTagPart);
               break;
            case TAG_END:
               node.setTagEndText(currentToken.getActualValue());
               break;
         }

         if (currentToken.getType() == TokenType.TAG_END) {
            if (currentToken.getValue().equals("/>")) {
               node.setEndLine(peek(1).getLineNo());
               node.setEndColumn(peek(1).getColumn());

               if (dynamicTag) {
                  ((DynamicTag) node).init();
               }
               firstTag = false;
View Full Code Here

Examples of com.dotmarketing.util.diff.html.dom.TagNode

    }

    private void addRecursive(TagNode tree) {
        for (Node child : tree) {
            if (child instanceof TagNode) {
                TagNode tagnode = (TagNode) child;
                addRecursive(tagnode);
            } else if (child instanceof TextNode) {
                TextNode textnode = (TextNode) child;
                leafs.add(textnode);
            }
View Full Code Here

Examples of info.bliki.htmlcleaner.TagNode

                        // ignore lists and tables since they most of the time
                        // do not hold grammatically correct
                        // interesting sentences that are representative of the
                        // language.
                    } else if (node instanceof TagNode) {
                        TagNode tagNode = (TagNode) node;
                        Map<String, String> attributes = tagNode.getAttributes();
                        Map<String, Object> oAttributes = tagNode.getObjectAttributes();
                        boolean hasSpecialHandling = false;
                        String tagName = tagNode.getName();
                        int tagBegin = countingBuffer.currentPosition;
                        if ("a".equals(tagName)) {
                            String href = attributes.get(HREF_ATTR_KEY);
                            if (href != null
                                    && INTERWIKI_PATTERN.matcher(href).matches()) {
                                // ignore the interwiki links since they are
                                // mostly used for translation purpose.
                                hasSpecialHandling = true;
                            }
                        } else if ("ref".equals(tagName)) {
                            // ignore the references since they do not hold
                            // interesting text content
                            hasSpecialHandling = true;
                        } else if (oAttributes != null
                                && oAttributes.get(WIKIOBJECT_ATTR_KEY) instanceof ImageFormat) {
                            // the caption of images often holds well formed
                            // sentences with links to entities
                            hasSpecialHandling = true;
                            ImageFormat iformat = (ImageFormat) oAttributes.get(WIKIOBJECT_ATTR_KEY);
                            imageNodeToText(tagNode, iformat, countingBuffer,
                                    model);
                        }
                        if (!hasSpecialHandling) {
                            nodesToText(tagNode.getChildren(), countingBuffer,
                                    model);
                        }
                        if (PARAGRAPH_TAGS.contains(tagName)) {
                            paragraphs.add(new Annotation(tagBegin,
                                    countingBuffer.currentPosition,
View Full Code Here

Examples of info.bliki.htmlcleaner.TagNode

    StringBuilder resultBuffer = new StringBuilder(fInputHTML.length());
    try {
      cleaner = new HtmlCleaner(fInputHTML);
      cleaner.clean();
      // resultBuffer.append(cleaner.getXmlAsString());
      TagNode body = cleaner.getBodyNode();
      converter.nodeToWiki(body, resultBuffer);
    } catch (IOException e) {
    }
    return resultBuffer.toString();
  }
View Full Code Here

Examples of info.bliki.htmlcleaner.TagNode

      String content = contentToken.getContent();
      // content = content.replaceAll("&nbsp;", " ");
      content = StringUtils.replace(content, "&nbsp;", " ");
      wikiText.append(content);
    } else if (node instanceof TagNode) {
      TagNode tagNode = (TagNode) node;

      String name = tagNode.getName();
      HTMLTag tag = (HTMLTag) fHashMap.get(name);

      if (tag != null) {
        boolean showWithoutTag = false;
        if (fNoDiv && name.equals("div")) {
          showWithoutTag = true;
        }
        if (fNoFont && name.equals("font")) {
          showWithoutTag = true;
        }
        tag.content(this, tagNode, wikiText, showWithoutTag);
      } else {
        List children = tagNode.getChildren();
        if (children.size() != 0) {
          nodesToText(children, wikiText);
        }
      }
    }
View Full Code Here

Examples of info.bliki.htmlcleaner.TagNode

      ContentToken contentToken = (ContentToken) node;
      String content = contentToken.getContent();
      content = content.replaceAll("&nbsp;", " ");
      plainText.append(content);
    } else if (node instanceof TagNode) {
      TagNode tagNode = (TagNode) node;
      List children = tagNode.getChildren();
      if (children.size() != 0) {
        nodesToPlainText(children, plainText);
      }
    }
  }
View Full Code Here

Examples of info.bliki.htmlcleaner.TagNode

      String content = contentToken.getContent();
      // content = content.replaceAll("&nbsp;", " ");
      content = StringUtils.replace(content, "&nbsp;", " ");
      wikiText.append(content);
    } else if (node instanceof TagNode) {
      TagNode tagNode = (TagNode) node;

      String name = tagNode.getName();
      HTMLTag tag = (HTMLTag) fHashMap.get(name);

      if (tag != null) {
        boolean showWithoutTag = false;
        if (fNoDiv && name.equals("div")) {
          showWithoutTag = true;
        }
        if (fNoFont && name.equals("font")) {
          showWithoutTag = true;
        }
        tag.content(this, tagNode, wikiText, showWithoutTag);
      } else {
        List children = tagNode.getChildren();
        if (children.size() != 0) {
          nodesToText(children, wikiText);
        }
      }
    }
View Full Code Here

Examples of info.bliki.htmlcleaner.TagNode

      ContentToken contentToken = (ContentToken) node;
      String content = contentToken.getContent();
      content = content.replaceAll("&nbsp;", " ");
      plainText.append(content);
    } else if (node instanceof TagNode) {
      TagNode tagNode = (TagNode) node;
      List children = tagNode.getChildren();
      if (children.size() != 0) {
        nodesToPlainText(children, plainText);
      }
    }
  }
View Full Code Here

Examples of info.bliki.htmlcleaner.TagNode

  public void append(BaseToken contentNode) {
    fTagStack.append(contentNode);
  }

  public void appendExternalImageLink(String imageSrc, String imageAltText) {
    TagNode spanTagNode = new TagNode("span");
    append(spanTagNode);
    spanTagNode.addAttribute("class", "image", true);
    TagNode imgTagNode = new TagNode("img");
    spanTagNode.addChild(imgTagNode);
    imgTagNode.addAttribute("src", imageSrc, true);
    imgTagNode.addAttribute("alt", imageAltText, true);
    // "nofollow" keyword is not allowed for XHTML
    // imgTagNode.addAttribute("rel", "nofollow", true);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.