private boolean nextMatches(XdmNode node) { XdmItem nodeValue = computeGroup(node); if (nodeValue == null) { return false; } XdmSequenceIterator iter = node.axisIterator(Axis.FOLLOWING_SIBLING); while (iter.hasNext()) { XdmNode chk = (XdmNode) iter.next(); boolean skippable = (chk.getNodeKind() == XdmNodeKind.COMMENT || chk.getNodeKind() == XdmNodeKind.PROCESSING_INSTRUCTION); if (chk.getNodeKind() == XdmNodeKind.TEXT) { if ("".equals(chk.toString().trim())) { skippable = true; } } if (matcher.matches(chk)) { XdmItem nextValue = computeGroup(chk); boolean same = S9apiUtils.xpathEqual(runtime.getProcessor(), nodeValue, nextValue); return same; } if (!skippable) { return false; } } return false; }
private boolean nextMatches(XdmNode node) { XdmItem nodeValue = computeGroup(node); if (nodeValue == null) { return false; } XdmSequenceIterator iter = node.axisIterator(Axis.FOLLOWING_SIBLING); while (iter.hasNext()) { XdmNode chk = (XdmNode) iter.next(); boolean skippable = (chk.getNodeKind() == XdmNodeKind.COMMENT || chk.getNodeKind() == XdmNodeKind.PROCESSING_INSTRUCTION); if (chk.getNodeKind() == XdmNodeKind.TEXT) { if ("".equals(chk.toString().trim())) { skippable = true; } } if (matcher.matches(chk)) { XdmItem nextValue = computeGroup(chk); boolean same = S9apiUtils.xpathEqual(runtime.getProcessor(), nodeValue, nextValue); return same; } if (!skippable) { return false; } } return false; }
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 } }