让我们说我试图为数字标题添加内容控件。如果数字标题已经有CC,那么我需要从para获取sdtRun的索引值并在保留文本后删除SdtRun值。这样我就可以使用sdtRun的索引值将文本值重新插入para。
int sdtcount = 0;
int indexSdt = 0;
List<String> text1 = new ArrayList<String>();
List<Object> objects = p.getContent();
ClassFinder sdts = new ClassFinder(SdtRun.class);
new TraversalUtil(p, sdts);
StringBuilder sd = new StringBuilder();
for (Object o : sdts.results) {
SdtRun sdtRun = (SdtRun) o;
if (sdtRun.getParent() instanceof P) {
ContentAccessor ca = (ContentAccessor) sdtRun.getParent();
indexSdt = ca.getContent().indexOf(sdtRun);
ClassFinder text2 = new ClassFinder(Text.class);
new TraversalUtil(sdtRun, text2);
for (Object o1 : text2.results) {
Text tex = (Text) o1;
sd.append(((Text) tex).getValue());
}
text1.add(sd.toString());
sd.delete(0, sd.length());
System.out.println(text1.get(sdtcount) + "indexSdt:" + indexSdt + "ca Size" + ca.getContent().size());
sdtcount++;
ca.getContent().remove(indexSdt);
}
}
这里我得到-1作为sdtIndex的值。