Java 如何使用ContentAccessor获取对象的索引值?
假设我正在尝试为图片标题添加内容控件。如果图片标题已经有CC,那么我需要从para获取sdtRun的索引值,并在保留文本值后删除sdtRun。因此,我将使用sdtRun的索引值将文本值重新插入paraJava 如何使用ContentAccessor获取对象的索引值?,java,docx4j,Java,Docx4j,假设我正在尝试为图片标题添加内容控件。如果图片标题已经有CC,那么我需要从para获取sdtRun的索引值,并在保留文本值后删除sdtRun。因此,我将使用sdtRun的索引值将文本值重新插入para int sdtcount = 0; int indexSdt = 0; List<String> text1 = new ArrayList<String>(); List<Object> objects = p.getCont
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);
}
}
intsdtcount=0;
int indexdt=0;
List text1=新的ArrayList();
List objects=p.getContent();
ClassFinder sdts=新的ClassFinder(SdtRun.class);
新TraversalUtil(p,SDT);
StringBuilder sd=新的StringBuilder();
用于(对象o:sdts.results){
SdtRun SdtRun=(SdtRun)o;
if(P的sdtRun.getParent()实例){
ContentAccessor ca=(ContentAccessor)sdtRun.getParent();
indexSdt=ca.getContent().indexOf(sdtRun);
ClassFinder text2=新的ClassFinder(Text.class);
新TraversalUtil(sdtRun,text2);
对于(对象o1:text2.results){
Text tex=(Text)o1;
追加(((文本)tex.getValue());
}
text1.add(sd.toString());
sd.delete(0,sd.length());
System.out.println(text1.get(sdtcount)+“indexdt:”+indexdt+“ca Size”+ca.getContent().Size());
sdtcount++;
ca.getContent().remove(indexSdt);
}
}
这里我得到-1作为sdtIndex的值。实际上我得到的是ContentAsseccor的索引值,但SdtRun来自其父级。实际上我得到的是ContentAsseccor的索引值,但SdtRun来自其父级。