You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ay...@apache.org on 2014/07/01 11:19:55 UTC

git commit: CAMEL-7468 Add the text mode to the xml tokenize extraction options

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 <ay...@apache.org>
Authored: Fri Jun 13 11:50:44 2014 +0200
Committer: Akitoshi Yoshida <ay...@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);