package folioxml.export.html;
import folioxml.core.InvalidMarkupException;
import folioxml.core.TokenBase.TagType;
import folioxml.export.NodeListProcessor;
import folioxml.xml.IFilter;
import folioxml.xml.Node;
import folioxml.xml.NodeFilter;
import folioxml.xml.NodeList;
/**
* @author nathanael
*/
public class SplitSelfClosingTags implements NodeListProcessor {
public NodeList process(NodeList nodes) throws InvalidMarkupException {
NodeList tofix = nodes.search(new SelfClosingFilter(), new NodeFilter("div|object|a|p|bookmark|style-def")); //Don't do img, br, hr,..
for (Node n : tofix.list()) {
n.tagType = TagType.Opening; //In an XML hierarchy, there are no closing tags. We don't have to worry about that.
}
return nodes;
}
private class SelfClosingFilter implements IFilter {
public SelfClosingFilter() {
}
public boolean matches(Node n) throws InvalidMarkupException {
return n.isSelfClosing();
}
}
}