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