private void traverse(XdmNode node, boolean deep) throws SaxonApiException, XPathException { boolean match = matches(node); if (match) { count++; } if (node.getNodeKind() == XdmNodeKind.DOCUMENT) { if (!match || deep) { XdmSequenceIterator iter = node.axisIterator(Axis.CHILD); while (iter.hasNext()) { XdmNode child = (XdmNode) iter.next(); traverse(child, deep); } } } else if (node.getNodeKind() == XdmNodeKind.ELEMENT) { if (!match || deep) { XdmSequenceIterator iter = node.axisIterator(Axis.ATTRIBUTE); while (iter.hasNext()) { XdmNode child = (XdmNode) iter.next(); traverse(child, deep); } iter = node.axisIterator(Axis.CHILD); while (iter.hasNext()) { XdmNode child = (XdmNode) iter.next(); traverse(child, deep); } } } else { //nop } }
private void traverse(XdmNode node, boolean deep) throws SaxonApiException, XPathException { boolean match = matches(node); if (match) { count++; } if (node.getNodeKind() == XdmNodeKind.DOCUMENT) { if (!match || deep) { XdmSequenceIterator iter = node.axisIterator(Axis.CHILD); while (iter.hasNext()) { XdmNode child = (XdmNode) iter.next(); traverse(child, deep); } } } else if (node.getNodeKind() == XdmNodeKind.ELEMENT) { if (!match || deep) { XdmSequenceIterator iter = node.axisIterator(Axis.ATTRIBUTE); while (iter.hasNext()) { XdmNode child = (XdmNode) iter.next(); traverse(child, deep); } iter = node.axisIterator(Axis.CHILD); while (iter.hasNext()) { XdmNode child = (XdmNode) iter.next(); traverse(child, deep); } } } else { //nop } }
public int count(XdmNode doc, RuntimeValue match, boolean deep) { count = 0; try { XPathEvaluator xeval = new XPathEvaluator(saxonConfig); NamespaceResolver resolver = new MatchingNamespaceResolver(match.getNamespaceBindings()); xeval.getStaticContext().setNamespaceResolver(resolver); matcher = xeval.createPattern(match.getString()); traverse(doc, deep); } catch (XProcException e) { throw e; } catch (Exception e) { throw new XProcException(e); } return count; }
public int count(XdmNode doc, RuntimeValue match, boolean deep) { count = 0; try { XPathEvaluator xeval = new XPathEvaluator(saxonConfig); NamespaceResolver resolver = new MatchingNamespaceResolver(match.getNamespaceBindings()); xeval.getStaticContext().setNamespaceResolver(resolver); matcher = xeval.createPattern(match.getString()); traverse(doc, deep); } catch (XProcException e) { throw e; } catch (Exception e) { throw new XProcException(e); } return count; }
startDocument(doc.getBaseURI()); traverse(doc); if (doc.getNodeKind() != XdmNodeKind.DOCUMENT) { endDocument();
startDocument(doc.getBaseURI()); traverse(doc); if (doc.getNodeKind() != XdmNodeKind.DOCUMENT) { endDocument();
while (iter.hasNext()) { XdmNode child = (XdmNode) iter.next(); traverse(child); XdmNode child = (XdmNode) iter.next(); if (!matches(child)) { traverse(child); XdmNode child = (XdmNode) iter.next(); if (matches(child)) { traverse(child); while (iter.hasNext()) { XdmNode child = (XdmNode) iter.next(); traverse(child);
while (iter.hasNext()) { XdmNode child = (XdmNode) iter.next(); traverse(child); XdmNode child = (XdmNode) iter.next(); if (!matches(child)) { traverse(child); XdmNode child = (XdmNode) iter.next(); if (matches(child)) { traverse(child); while (iter.hasNext()) { XdmNode child = (XdmNode) iter.next(); traverse(child);