Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用ContentAccessor获取对象的索引值?_Java_Docx4j - Fatal编程技术网

Java 如何使用ContentAccessor获取对象的索引值?

Java 如何使用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

假设我正在尝试为图片标题添加内容控件。如果图片标题已经有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);
        }
    }
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来自其父级。