aboutsummaryrefslogtreecommitdiffstats
path: root/src/ooxml
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2010-06-29 13:38:24 +0000
committerNick Burch <nick@apache.org>2010-06-29 13:38:24 +0000
commitf69404de8d0b8d974b9eefe8411f1ce7620bb15c (patch)
tree94f9dddde372b7d1f3c5215cf3f8885b2e79793a /src/ooxml
parentb75c47e1e5917ec141544d3de00546ed09997d29 (diff)
downloadpoi-f69404de8d0b8d974b9eefe8411f1ce7620bb15c.tar.gz
poi-f69404de8d0b8d974b9eefe8411f1ce7620bb15c.zip
Fix bug #49446 - Don't consider 17.16.23 field codes as properly part of the paragraph's text
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@958965 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/ooxml')
-rw-r--r--src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java8
-rw-r--r--src/ooxml/testcases/org/apache/poi/xwpf/extractor/TestXWPFWordExtractor.java13
2 files changed, 20 insertions, 1 deletions
diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java
index 6aabadef95..e0741e782a 100644
--- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java
+++ b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java
@@ -133,7 +133,13 @@ public class XWPFParagraph implements IBodyElement{
while (c.toNextSelection()) {
XmlObject o = c.getObject();
if (o instanceof CTText) {
- text.append(((CTText) o).getStringValue());
+ String tagName = o.getDomNode().getNodeName();
+ // Field Codes (w:instrText, defined in spec sec. 17.16.23)
+ // come up as instances of CTText, but we don't want them
+ // in the normal text output
+ if (!"w:instrText".equals(tagName)) {
+ text.append(((CTText) o).getStringValue());
+ }
}
if (o instanceof CTPTab) {
text.append("\t");
diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/extractor/TestXWPFWordExtractor.java b/src/ooxml/testcases/org/apache/poi/xwpf/extractor/TestXWPFWordExtractor.java
index f98d5e69ca..2277ecec9d 100644
--- a/src/ooxml/testcases/org/apache/poi/xwpf/extractor/TestXWPFWordExtractor.java
+++ b/src/ooxml/testcases/org/apache/poi/xwpf/extractor/TestXWPFWordExtractor.java
@@ -237,4 +237,17 @@ public class TestXWPFWordExtractor extends TestCase {
// Now check the first paragraph in total
assertTrue(extractor.getText().contains("a\tb\n"));
}
+
+ /**
+ * The output should not contain field codes, e.g. those specified in the
+ * w:instrText tag (spec sec. 17.16.23)
+ */
+ public void testNoFieldCodes() {
+ XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("FieldCodes.docx");
+ XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
+ String text = extractor.getText();
+ assertTrue(text.length() > 0);
+ assertFalse(text.contains("AUTHOR"));
+ assertFalse(text.contains("CREATEDATE"));
+ }
}