public void expandNodes(ActiveNodeList nl, Output dst) { int len = nl.getLength(); for (int i = 0; i < len; ++i) { ActiveNode n = nl.activeItem(i); if (n.getNodeType() == Node.ENTITY_NODE) { expandEntity((ActiveEntity) n, dst); } else if (n.getNodeType() == Node.ENTITY_REFERENCE_NODE) { expandEntityRef((EntityReference) n, dst); } else { dst.putNode(n); } } }
/** * Process the current node in the default manner, expanding entities in its attributes and * processing its children re-entrantly. */ public final void expandCurrentNode() { ActiveNode node = input.getActive(); if (node == null) return; // Crock for PI comments: if (node.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE && node.getNodeName().equals("--")) return; // No need to check for an entity; active ones use EntityHandler. if (input.hasActiveAttributes()) { ActiveElement oe = node.asElement(); ActiveElement e = oe.editedCopy(expandAttrs(oe.getAttrList()), null); output.startNode(e); if (input.hasChildren()) { processChildren(); } output.endElement(e.isEmptyElement() || e.implicitEnd()); } else if (input.hasChildren()) { output.startNode(node); if (input.hasChildren()) processChildren(); output.endNode(); } else { output.putNode(node); } }