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

时间:2016-08-29 09:13:32

标签: java docx4j

让我们说我试图为数字标题添加内容控件。如果数字标题已经有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的值。

0 个答案:

没有答案