private void xPathGetter(String resourceName) throws Exception { Document doc = XmlUtils.loadXml(JuUrl.resource().relativeTo(XmlUtilsTest.class).get(resourceName)); XPathGetter xg = new XPathGetter(doc); assertEquals("XPathGetter[node=#document,nodeValue=<null>]", xg.toString()); assertArrayEquals(xg.getArray("//a1/*/@text"), new String[] {"B2", "B2", "B3"}); assertArrayEquals(xg.getArrayLong("//*/@value"), new Long[] {1L, 2L, 2L}); assertArrayEquals(xg.getDistinctArray("//b3/*/@value"), new String[] {"2"}); assertArrayEquals(xg.getDistinctArrayLong("//b3/*/@value"), new Long[] {2L}); assertEquals(xg.getGetter("//b3").getSingle("@text"), "B3"); XPathGetter xgSubs[] = xg.getGetters("//b3/*"); assertEquals(xgSubs.length, 2); assertEquals(xgSubs[0].getSingle("@text"), "C2"); assertEquals("XPathGetter[node=c2,nodeValue=<null>]", xgSubs[0].toString()); assertEquals(xgSubs[1].getSingle("@text"), "C3"); assertEquals("XPathGetter[node=c3,nodeValue=<null>]", xgSubs[1].toString()); assertEquals(xg.getNode("root"), doc.getDocumentElement()); Node bNodes[] = xg.getNodes("//a1/*"); assertEquals(bNodes.length, 3); assertEquals(bNodes[2].getNodeName(), "b3"); assertEquals(xg.getSingle("/root/a1/@text"), "A1"); assertEquals(xg.getSingleLong("/root/a1/b2/c1/@value"), new Long(1)); assertEquals(3, xg.getCount("//a1/*")); }