further bullet proofing
This commit is contained in:
parent
a92fb88e51
commit
899da61555
|
@ -9,24 +9,24 @@ public class Element {
|
|||
protected Hashtable<String, String> attributes = new Hashtable<String, String>();
|
||||
protected String content;
|
||||
protected List<Element> children = new ArrayList<Element>();
|
||||
|
||||
|
||||
public Element(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
|
||||
public Element addChild(Element child) {
|
||||
this.content = null;
|
||||
children.add(child);
|
||||
return child;
|
||||
}
|
||||
|
||||
|
||||
public Element addChild(String name) {
|
||||
this.content = null;
|
||||
Element child = new Element(name);
|
||||
children.add(child);
|
||||
return child;
|
||||
}
|
||||
|
||||
|
||||
public Element addChild(String name, String xmlns) {
|
||||
this.content = null;
|
||||
Element child = new Element(name);
|
||||
|
@ -34,64 +34,65 @@ public class Element {
|
|||
children.add(child);
|
||||
return child;
|
||||
}
|
||||
|
||||
|
||||
public Element setContent(String content) {
|
||||
this.content = content;
|
||||
this.children.clear();
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public Element findChild(String name) {
|
||||
for(Element child : this.children) {
|
||||
for (Element child : this.children) {
|
||||
if (child.getName().equals(name)) {
|
||||
return child;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public Element findChild(String name, String xmlns) {
|
||||
for(Element child : this.children) {
|
||||
if (child.getName().equals(name)&&(child.getAttribute("xmlns").equals(xmlns))) {
|
||||
for (Element child : this.children) {
|
||||
if (child.getName().equals(name)
|
||||
&& (child.getAttribute("xmlns").equals(xmlns))) {
|
||||
return child;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public boolean hasChild(String name) {
|
||||
return findChild(name) != null;
|
||||
}
|
||||
|
||||
|
||||
public boolean hasChild(String name, String xmlns) {
|
||||
return findChild(name, xmlns) != null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public List<Element> getChildren() {
|
||||
return this.children;
|
||||
}
|
||||
|
||||
|
||||
public Element setChildren(List<Element> children) {
|
||||
this.children = children;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
|
||||
public Element setAttribute(String name, String value) {
|
||||
this.attributes.put(name, value);
|
||||
if (name != null && value != null) {
|
||||
this.attributes.put(name, value);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public Element setAttributes(Hashtable<String, String> attributes) {
|
||||
this.attributes = attributes;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public String getAttribute(String name) {
|
||||
if (this.attributes.containsKey(name)) {
|
||||
return this.attributes.get(name);
|
||||
|
@ -99,14 +100,14 @@ public class Element {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Hashtable<String, String> getAttributes() {
|
||||
return this.attributes;
|
||||
}
|
||||
|
||||
|
||||
public String toString() {
|
||||
StringBuilder elementOutput = new StringBuilder();
|
||||
if ((content==null)&&(children.size() == 0)) {
|
||||
if ((content == null) && (children.size() == 0)) {
|
||||
Tag emptyTag = Tag.empty(name);
|
||||
emptyTag.setAtttributes(this.attributes);
|
||||
elementOutput.append(emptyTag.toString());
|
||||
|
@ -114,10 +115,10 @@ public class Element {
|
|||
Tag startTag = Tag.start(name);
|
||||
startTag.setAtttributes(this.attributes);
|
||||
elementOutput.append(startTag);
|
||||
if (content!=null) {
|
||||
if (content != null) {
|
||||
elementOutput.append(encodeEntities(content));
|
||||
} else {
|
||||
for(Element child : children) {
|
||||
for (Element child : children) {
|
||||
elementOutput.append(child.toString());
|
||||
}
|
||||
}
|
||||
|
@ -130,13 +131,13 @@ public class Element {
|
|||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
private String encodeEntities(String content) {
|
||||
content = content.replace("&","&");
|
||||
content = content.replace("<","<");
|
||||
content = content.replace(">",">");
|
||||
content = content.replace("\"",""");
|
||||
content = content.replace("'","'");
|
||||
content = content.replace("&", "&");
|
||||
content = content.replace("<", "<");
|
||||
content = content.replace(">", ">");
|
||||
content = content.replace("\"", """);
|
||||
content = content.replace("'", "'");
|
||||
return content;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue