/[aagtl_public1]/src/net/htmlparser/jericho/StartTagTypeMarkupDeclaration.java
aagtl

Contents of /src/net/htmlparser/jericho/StartTagTypeMarkupDeclaration.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (show annotations) (download)
Sun Aug 5 13:48:36 2012 UTC (11 years, 7 months ago) by zoffadmin
File size: 2142 byte(s)
initial import of aagtl source code
1 // Jericho HTML Parser - Java based library for analysing and manipulating HTML
2 // Version 3.2
3 // Copyright (C) 2004-2009 Martin Jericho
4 // http://jericho.htmlparser.net/
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of either one of the following licences:
8 //
9 // 1. The Eclipse Public License (EPL) version 1.0,
10 // included in this distribution in the file licence-epl-1.0.html
11 // or available at http://www.eclipse.org/legal/epl-v10.html
12 //
13 // 2. The GNU Lesser General Public License (LGPL) version 2.1 or later,
14 // included in this distribution in the file licence-lgpl-2.1.txt
15 // or available at http://www.gnu.org/licenses/lgpl.txt
16 //
17 // This library is distributed on an "AS IS" basis,
18 // WITHOUT WARRANTY OF ANY KIND, either express or implied.
19 // See the individual licence texts for more details.
20
21 package net.htmlparser.jericho;
22
23 import java.util.*;
24
25 class StartTagTypeMarkupDeclaration extends StartTagTypeGenericImplementation {
26 static final StartTagTypeMarkupDeclaration INSTANCE=new StartTagTypeMarkupDeclaration();
27
28 static final String ELEMENT="!element";
29 static final String ATTLIST="!attlist";
30 static final String ENTITY="!entity";
31 static final String NOTATION="!notation";
32
33 private StartTagTypeMarkupDeclaration() {
34 super("markup declaration","<!",">",null,false,false,true);
35 }
36
37 protected Tag constructTagAt(final Source source, final int pos) {
38 final Tag tag=super.constructTagAt(source,pos);
39 if (tag==null) return null;
40 final String name=tag.getName();
41 if (name!=ELEMENT && name!=ATTLIST && name!=ENTITY && name!=NOTATION) return null; // can use == instead of .equals() because the names are in HtmlElements.CONSTANT_NAME_MAP
42 return tag;
43 }
44
45 protected int getEnd(final Source source, int pos) {
46 final ParseText parseText=source.getParseText();
47 boolean insideQuotes=false;
48 do {
49 final char c=parseText.charAt(pos);
50 if (c=='"') {
51 insideQuotes=!insideQuotes;
52 } else if (c=='>' && !insideQuotes) {
53 return pos+1;
54 }
55 } while ((++pos)<source.getEnd());
56 return -1;
57 }
58 }

   
Visit the aagtl Website