private void processStartTag( StartTag tag ) { if( "<".equals( tag.getTagType().getStartDelimiter() ) ) { stack.push( new Level( tag ) ); writer.write( "<" ); writer.write( tag.getNameSegment().toString() ); Attributes attributes = tag.getAttributes(); if( !attributes.isEmpty() ) { for( Attribute attribute : attributes ) { processAttribute( attribute ); } } if( tag.toString().trim().endsWith( "/>" ) || tag.isEmptyElementTag() ) { stack.pop(); writer.write( "/>" ); } else { writer.write( ">" ); } } else { writer.write( tag.toString() ); } }
/** * Returns the {@linkplain StartTag#getName() name} of the {@linkplain #getStartTag() start tag} of this element, always in lower case. * <p> * This is equivalent to {@link #getStartTag()}<code>.</code>{@link StartTag#getName() getName()}. * <p> * See the {@link Tag#getName()} method for more information. * * @return the name of the {@linkplain #getStartTag() start tag} of this element, always in lower case. */ public String getName() { return startTag.getName(); }
StringBuilder appendDebugTag(final StringBuilder sb) { if (startTagType==StartTagType.NORMAL && getAttributes().isEmpty()) { sb.append(this); } else { sb.append('<').append(getNameSegment()).append(' '); if (isSyntacticalEmptyElementTag()) sb.append('/'); sb.append(startTagType.getClosingDelimiter()); } return sb; }
private Segment[] getEndTag(final EndTag nextEndTag, final boolean checkForEmptyElementTag, final boolean isXMLTagName) { assert nextEndTag!=null; StartTag nextStartTag=getNext(source,end,name,startTagType,isXMLTagName); if (checkForEmptyElementTag) { while (nextStartTag!=null && nextStartTag.isSyntacticalEmptyElementTag()) nextStartTag=getNext(source,nextStartTag.end,name,startTagType,isXMLTagName); } return getEndTag(end,nextStartTag,nextEndTag,checkForEmptyElementTag,isXMLTagName); }
private static boolean tagHasUnquotedAttribute(StartTag tag) { if (tag.getAttributes() != null && !tag.getAttributes().isEmpty() && tag.getTagType() != StartTagType.XML_DECLARATION && tag.getTagType() != StartTagType.DOCTYPE_DECLARATION && tag.getTagType() != StartTagType.XML_PROCESSING_INSTRUCTION) { for (Attribute att : tag.getAttributes()) { if (att.getQuoteChar() == ' ') { return true; } } } return false; } }
switch (getConfig().getConditionalElementRuleType(tag.getName(), tag.getAttributes().populateMap(attributeMap, true))) { startTextUnit(new GenericSkeleton(tag.toString()), propertyTextUnitPlaceholders); } else { if (!tag.isSyntacticalEmptyElementTag()) { startTextUnit(new GenericSkeleton(tag.toString())); } else { addToDocumentPart(tag.toString()); case GROUP_ELEMENT: if (propertyTextUnitPlaceholders != null && !propertyTextUnitPlaceholders.isEmpty()) { startGroup(new GenericSkeleton(tag.toString()), getConfig().getElementType(tag), getSrcLoc(), propertyTextUnitPlaceholders); } else { if (!tag.isSyntacticalEmptyElementTag()) { startGroup(new GenericSkeleton(tag.toString()), getConfig().getElementType(tag)); } else { addToDocumentPart(tag.toString()); default: if (propertyTextUnitPlaceholders != null && !propertyTextUnitPlaceholders.isEmpty()) { startDocumentPart(tag.toString(), tag.getName(), propertyTextUnitPlaceholders); endDocumentPart(); } else { addToDocumentPart(tag.toString());
LinkedHashMap<String, String> attributesMap = new LinkedHashMap<String, String>(); writer.write(StartTag.generateHTML( st.getNameSegment().toString(), st.getAttributes().populateMap(attributesMap, false), st.isSyntacticalEmptyElementTag())); } else { writer.write(st.toString()); if ( st.getName() == HTMLElementName.HTML ) { Attributes attrs = st.getAttributes(); for ( int i=0; i<attrs.getCount(); i++ ) { String name = attrs.get(i).getName(); if ( name.equals("xmlns") || name.startsWith("xmlns:") ) { String xmlns = st.getAttributeValue(name); if ( xmlns == null ) { else if ( st.getName() == HTMLElementName.HEAD ) {
config.getWriter().write(segment.toString()); if (tag.getTagType() == StartTagType.NORMAL && !tag.toString().endsWith("/>") && !tag.toString().endsWith("/ >")) { eltStack.push(new Element(tag.getName(), tag.getAttributes())); if (config.getUrl() != null && HTMLElementName.HEAD.equals(tag.getName())) { config.getWriter().write("<base href=\"" + getBase(config.getUrl()) + "\"></base>"); injectStyles(config.getWriter(), config.getStylesheets());
public ParserTag(StartTag tag) { setName(tag.getName()); setBegin(tag.getElement().getEnd()); setEnd(tag.getElement().getBegin()); setStartTagBegin(tag.getElement().getStartTag().getBegin()); setStartTagEnd(tag.getElement().getStartTag().getEnd()); if (tag.getElement().getEndTag() != null) { setEndTagBegin(tag.getElement().getEndTag().getBegin()); setEndTagEnd(tag.getElement().getEndTag().getEnd()); } else { setEndTagBegin(tag.getElement().getStartTag().getBegin()); setEndTagEnd(tag.getElement().getStartTag().getEnd()); } setAttributes(tag.getAttributes()); }
/** * Returns the attributes specified in this element's start tag. * <p> * This is equivalent to {@link #getStartTag()}<code>.</code>{@link StartTag#getAttributes() getAttributes()}. * * @return the attributes specified in this element's start tag. * @see StartTag#getAttributes() */ public Attributes getAttributes() { return getStartTag().getAttributes(); }
private CharSequence getStartTagHTML(StartTag startTag) { // tidies and filters out non-approved attributes StringBuilder sb = new StringBuilder(); sb.append('<').append(startTag.getName()); for (Attribute attribute : startTag.getAttributes()) { if (allowedAttributes.contains(attribute.getKey().toLowerCase())) { sb.append(' ').append(attribute.getName()); if (attribute.getValue() != null) { sb.append("=\""); sb.append(CharacterReference.encode(attribute.getValue())); sb.append('"'); } } } if (startTag.getElement().getEndTag() == null && !HTMLElements.getEndTagOptionalElementNames().contains(startTag.getName())) { sb.append(" /"); } sb.append('>'); return sb; }
sTagName = startTag.getName(); // DWH 2-26-09 sTagString = startTag.toString(); // DWH 2-26-09 && partName.equals("xl/workbook.xml") && sTagName.equals("sheet") && "hidden".equals(startTag.getAttributeValue("state"))) { addToDocumentPart(sTagString); break; pendingTagName = startTag.getName(); pendingTagText = startTag.toString(); break; default:
for (Attribute attribute : startTag.parseAttributes()) { attributeMap.clear(); switch (getConfig().findMatchingAttributeRule(startTag.getName(), startTag.getAttributes().populateMap(attributeMap, true), attribute.getName())) { case ATTRIBUTE_TRANS: propertyOrTextUnitPlaceholders.add(createPropertyTextUnitPlaceholder( ruleState.pushPreserverWhitespaceRule(startTag.getName(), true); } else if (defaultWS) { ruleState.pushPreserverWhitespaceRule(startTag.getName(), false);
if (startTag==null) return null; if (startTag.name.equals(searchName)) return startTag; if (startTag.name.startsWith(searchName) && startTag.isPartialNameSearchMatch(searchName)) return startTag; if (startTag.name.length()<searchName.length() && source.getParseText().containsAt(searchName,startTag.begin+searchStartTagType.startDelimiterPrefix.length())) return startTag; startTag=(StartTag)startTag.getPreviousTag(searchStartTagType); final String startDelimiter=getStartDelimiter(searchName); try { final ParseText parseText=source.getParseText(); final StartTag startTag=(StartTag)Tag.getTagAt(source,begin,false); if (startTag==null) continue; // keep looking if it wasn't a start tag if (searchStartTagType!=startTag.getStartTagType()) { if (searchStartTagType!=StartTagType.NORMAL || isXMLTagName || !startTag.isUnregistered()) continue; if (startTag.getName().length()>searchName.length() && !startTag.isPartialNameSearchMatch(searchName)) continue;
if (startTag==null) return null; if (startTag.name.equals(searchName)) return startTag; if (startTag.name.startsWith(searchName) && startTag.isPartialNameSearchMatch(searchName)) return startTag; if (startTag.name.length()<searchName.length() && source.getParseText().containsAt(searchName,startTag.begin+searchStartTagType.startDelimiterPrefix.length())) return startTag; startTag=(StartTag)startTag.getNextTag(searchStartTagType); final String startDelimiter=getStartDelimiter(searchName); try { final ParseText parseText=source.getParseText(); final StartTag startTag=(StartTag)Tag.getTagAt(source,begin,false); if (startTag==null) continue; // keep looking if it wasn't a start tag if (searchStartTagType!=startTag.getStartTagType()) { if (searchStartTagType!=StartTagType.NORMAL || isXMLTagName || !startTag.isUnregistered()) continue; if (startTag.getName().length()>searchName.length() && !startTag.isPartialNameSearchMatch(searchName)) continue;
if (tag instanceof StartTag) { StartTag startTag=(StartTag)tag; if (startTag.getStartTagType().getCorrespondingEndTagType()==null) continue; if (HTMLElements.getEndTagForbiddenElementNames().contains(startTag.getName())) continue; if (startTag.isEmptyElementTag()) continue; depth++; if (depth>maxDepth) maxDepth++;
List<Attribute> attributes1 = st1.getAttributes(); String value2 = st2.getAttributeValue(attribute1.getName()); if(value2 == null) { System.out.println("Attribute not present in stream2: attribute1=" + attribute1.getBegin() + "; tag2=" + st2.getBegin()); return false; System.out.println("Attribute value mismatch: attribute1=" + attribute1.getBegin() + "; tag2=" + st2.getBegin()); return false;
if (startTag.getName()==HTMLElementName.AREA) return null; final String alt=startTag.getAttributeValue("alt"); if (alt==null || alt.length()==0) return null; return '['+alt+']';
@Override public void element(final Element element, final Context context, final BugList bugs) { if ("script".equals(element.getName())) { final String src = element.getStartTag().toString(); if (!src.matches(".*src=.*")) { context.addMessage("AVOID_USING_INLINE_JS", null); } } } }
scanElement(elem, context); final Pattern p = Pattern.compile("<\\w+\\s(.*[^/])/?>", Pattern.MULTILINE | Pattern.DOTALL); final String expr = elem.getFirstStartTag().toString(); final Matcher m = p.matcher(expr); if (m.matches()) { cfscript = elem.getSource().subSequence(elem.getStartTag().getEnd(), nextTag.getBegin()) .toString(); skipToPosition = nextTag.getEnd();