not really known
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

114 lines
2.7 KiB

package net.jrtechs.www;
import java.util.ArrayList;
import java.util.List;
/**
* Method for recursively defining HTML
*
* @author Jeffery Russell 5-24-18
*/
public class HtmlElement
{
/** Curses, I can't name it class **/
private List<String> clas;
private List<String> id;
private List<HtmlElement> elements;
private String tag;
private String contents;
public HtmlElement(String html)
{
clas = new ArrayList<>();
id = new ArrayList<>();
elements = new ArrayList<>();
ArrayList<String> tags = this.parseIntoTags(html);
this.pruneTags(tags);
if(tags.size() > 0)
{
}
}
private ArrayList<String> parseIntoTags(String html)
{
html = html.replace("\n", "");
html = html.replace("\t", "");
ArrayList<String> tags = new ArrayList<>();
String temp = "";
for(int i = 0; i < html.length(); i++)
{
if(html.substring(i, i+1).equals("<"))
{
if(temp.length() > 0)
tags.add(temp);
temp = "<";
}
else if (html.substring(i, i+1).equals(">"))
{
temp += html.substring(i, i+ 1);
tags.add(temp);
temp = "";
}
else
{
temp+= html.substring(i, i+ 1);
}
}
if(temp.length() > 0)
tags.add(temp);
return tags;
}
private void pruneTags(List<String> tags)
{
List<String> badStuff = new ArrayList<>();
badStuff.add("<br>");
badStuff.add("<!--");
badStuff.add("-->");
badStuff.add("<!");
tags.forEach(t -> badStuff.forEach(b ->
{
if(t.contains(b))
tags.remove(t);
}));
}
public List<HtmlElement> getElementsWithClass(String clas)
{
List<HtmlElement> elems = new ArrayList<>();
this.clas.stream().filter(s-> s.equals(clas)).forEach(s2->elems.add(this));
this.elements.forEach(e -> elems.addAll(e.getElementsWithClass(clas)));
return elems;
}
public List<HtmlElement> getElementsWithID(String ids)
{
List<HtmlElement> elems = new ArrayList<>();
this.id.stream().filter(s-> s.equals(ids)).forEach(s2->elems.add(this));
this.elements.forEach(e -> elems.addAll(e.getElementsWithID(ids)));
return elems;
}
public List<HtmlElement> getElementsWithTag(String tag)
{
List<HtmlElement> elems = new ArrayList<>();
if(this.tag.equals(tag))
elems.add(this);
this.elements.forEach(e -> elems.addAll(e.getElementsWithID(tag)));
return elems;
}
}