Index: src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSDTContent.java =================================================================== --- src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSDTContent.java (revision 1879153) +++ src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFSDTContent.java (working copy) @@ -26,6 +26,7 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtBlock; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtContentBlock; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtContentRun; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtRun; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl; /** @@ -50,11 +51,19 @@ if (sdtRun == null) { return; } - for (CTR ctr : sdtRun.getRArray()) { - XWPFRun run = new XWPFRun(ctr, parent); - // runs.add(run); - bodyElements.add(run); + XmlCursor cursor = sdtRun.newCursor(); + cursor.selectPath("./*"); + while (cursor.toNextSelection()) { + XmlObject o = cursor.getObject(); + if (o instanceof CTR) { + XWPFRun run = new XWPFRun((CTR) o, parent); + bodyElements.add(run); + } else if (o instanceof CTSdtRun) { + XWPFSDT c = new XWPFSDT(((CTSdtRun) o), part); + bodyElements.add(c); + } } + cursor.dispose(); } public XWPFSDTContent(CTSdtContentBlock block, IBody part, IRunBody parent) {