public Nodes finishMakingElement(Element elem) { // if (DEBUG) System.err.println("finishlevel=" + level + ", name="+ elem.getLocalName()); if (level == 0) { // root element must always be present; // a document without root element is illegal in XOM mismatch = null; // help gc level--; return super.finishMakingElement(elem); } if (elem == mismatch) { // reset state mismatch = null; level--; return NONE; } if (level == localNames.length - 1) { // we've found an element matching the full path expression return transformMatch(elem); } level--; if (level < localNames.length - 1 && !hasChildElements(elem)) { // prune tree if mismatch or empty return NONE; } return super.finishMakingElement(elem); }
public Nodes finishMakingElement(Element elem) { // if (DEBUG) System.err.println("finishlevel=" + level + ", name="+ elem.getLocalName()); if (level == 0) { // root element must always be present; // a document without root element is illegal in XOM mismatch = null; // help gc level--; return super.finishMakingElement(elem); } if (elem == mismatch) { // reset state mismatch = null; level--; return NONE; } if (level == localNames.length - 1) { // we've found an element matching the full path expression return transformMatch(elem); } level--; if (level < localNames.length - 1 && !hasChildElements(elem)) { // prune tree if mismatch or empty return NONE; } return super.finishMakingElement(elem); }
private Nodes transformMatch(Element elem) { // if (DEBUG) System.err.println("found match at level=" + level + ":" // + XOMUtil.toPrettyXML(elem)); level--; if (transform == null) return super.finishMakingElement(elem); Nodes results = transform.transform(elem); // prevent potential nu.xom.MultipleParentException by detaching for (int i = results.size(); --i >= 0; ) { Node node = results.get(i); if (node != elem) node.detach(); } return results; }
private Nodes transformMatch(Element elem) { // if (DEBUG) System.err.println("found match at level=" + level + ":" // + XOMUtil.toPrettyXML(elem)); level--; if (transform == null) return super.finishMakingElement(elem); Nodes results = transform.transform(elem); // prevent potential nu.xom.MultipleParentException by detaching for (int i = results.size(); --i >= 0; ) { Node node = results.get(i); if (node != elem) node.detach(); } return results; }
break; case XMLStreamConstants.END_ELEMENT: nodeFactory.finishMakingElement(element); parent = parent.getParent(); break;
break; case XMLStreamConstants.END_ELEMENT: nodeFactory.finishMakingElement(element); parent = parent.getParent(); break;
break; case XMLStreamConstants.END_ELEMENT: nodeFactory.finishMakingElement(element); parent = parent.getParent(); break;
break; case XMLStreamConstants.END_ELEMENT: nodeFactory.finishMakingElement(element); parent = parent.getParent(); break;
nodes = factory.finishMakingElement(root);
nodes = factory.finishMakingElement(root);
nodes = factory.finishMakingElement(elem);
nodes = factory.finishMakingElement(elem);