Repository: camel Updated Branches: refs/heads/master 3c2252aa5 -> 7f14a9535
CAMEL-7468 Add the text mode to the xml tokenize extraction options Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7f14a953 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7f14a953 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7f14a953 Branch: refs/heads/master Commit: 7f14a9535d7727cde8794be512f3c727ab16d7e8 Parents: 3c2252a Author: Akitoshi Yoshida <a...@apache.org> Authored: Fri Jun 13 11:50:44 2014 +0200 Committer: Akitoshi Yoshida <a...@apache.org> Committed: Tue Jul 1 11:19:38 2014 +0200 ---------------------------------------------------------------------- .../apache/camel/support/XMLTokenExpressionIterator.java | 10 ++++++++++ .../camel/support/XMLTokenExpressionIteratorTest.java | 10 ++++++++++ 2 files changed, 20 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/7f14a953/camel-core/src/main/java/org/apache/camel/support/XMLTokenExpressionIterator.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/support/XMLTokenExpressionIterator.java b/camel-core/src/main/java/org/apache/camel/support/XMLTokenExpressionIterator.java index 35c579a..6c5e2b5 100644 --- a/camel-core/src/main/java/org/apache/camel/support/XMLTokenExpressionIterator.java +++ b/camel-core/src/main/java/org/apache/camel/support/XMLTokenExpressionIterator.java @@ -354,6 +354,16 @@ public class XMLTokenExpressionIterator extends ExpressionAdapter implements Nam if (bp > 0 && ep > 0) { sb.append(token.substring(bp + 1, ep)); } + } else if (mode == 't') { + int bp = 0; + for (;;) { + int ep = token.indexOf('>', bp); + bp = token.indexOf('<', ep); + if (bp < 0) { + break; + } + sb.append(token.substring(ep + 1, bp)); + } } return sb.toString(); http://git-wip-us.apache.org/repos/asf/camel/blob/7f14a953/camel-core/src/test/java/org/apache/camel/support/XMLTokenExpressionIteratorTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/support/XMLTokenExpressionIteratorTest.java b/camel-core/src/test/java/org/apache/camel/support/XMLTokenExpressionIteratorTest.java index 20866fc..7b91e7a 100644 --- a/camel-core/src/test/java/org/apache/camel/support/XMLTokenExpressionIteratorTest.java +++ b/camel-core/src/test/java/org/apache/camel/support/XMLTokenExpressionIteratorTest.java @@ -189,6 +189,11 @@ public class XMLTokenExpressionIteratorTest extends TestCase { "" }; + private static final String[] RESULTS_GRANDPARENT_TEXT = { + "emma", + "ben" + }; + private static final String[] RESULTS_NULL = { }; @@ -299,6 +304,11 @@ public class XMLTokenExpressionIteratorTest extends TestCase { 'u', new ByteArrayInputStream(TEST_BODY), RESULTS_AUNT_UNWRAPPED); } + public void testExtractGrandParentText() throws Exception { + invokeAndVerify("//grandparent", + 't', new ByteArrayInputStream(TEST_BODY), RESULTS_GRANDPARENT_TEXT); + } + private void invokeAndVerify(String path, char mode, InputStream in, String[] expected) throws Exception { XMLTokenExpressionIterator xtei = new XMLTokenExpressionIterator(path, mode); xtei.setNamespaces(nsmap);