public Element createElement(Document document, String data, boolean isJSPTag) {
Element element = null;
String str = data.trim();
CommentElementFactory factory = new CommentElementFactory(document, isJSPTag, this);
if (str.charAt(0) == '/') { // end tag
TagScanner scanner = new TagScanner(str, 1); // skip '/'
String name = scanner.nextName();
if (name.equals(elementName)) {
element = factory.create(name, CommentElementFactory.IS_END);
}
} else { // start tag
TagScanner scanner = new TagScanner(str, 0);
String name = scanner.nextName();
if (name.equals(elementName)) {
element = factory.create(name, (isEmpty) ? CommentElementFactory.IS_EMPTY : CommentElementFactory.IS_START);
// set attributes
String attrName = scanner.nextName();
while (attrName != null) {
String attrValue = scanner.nextValue();
Attr attr = document.createAttribute(attrName);
if (attr != null) {
if (attrValue != null)
((IDOMAttr) attr).setValueSource(attrValue);
element.setAttributeNode(attr);
}
attrName = scanner.nextName();
}
}
}
return element;
}