我尝试使用以下方法获取表的索引值
if(tbl.getParent() instanceof Body )
{
Body body = (Body) tbl.getParent();
int tIndex = body.getContent().indexOf(tbl);
body.getContent().remove(tbl);
}
另一种方法是使用contentAccessor
if(tbl.getParent() instanceof ContentAccessor )
{
ContentAccessor ca = (ContentAccessor) tbl.getParent();
int tIndex = ca.getContent().indexOf(tbl);
ca.getContent().remove(tbl);
}
但不是得到实际的索引值而是得到-1作为tIndex。它也不是从它的父级删除tbl(ca.getContent()。remove(tbl);)。
有没有其他方法可以获得Tbl的索引值?
答案 0 :(得分:1)
ContentAccessor ca = (ContentAccessor) tbl.getParent();
int tIndex = getIndex(ca.getContent(), tbl);
if(tIndex != 98761){
//do whatever you want to
}
private static int getIndex(List<Object> theList, Object bm)
{
for (Object ox : theList)
{
if (XmlUtils.unwrap(ox).equals(bm))
{
int o = theList.indexOf(ox);
return o;
}
}
return 98761;
}
在我的情况下,tIndex不会触及那么多的数字(98761)。如果您觉得不安全,只需增加返回值。