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);

Reply via email to