迭代判断Categories下的Category元素下是否含有ProductCategory元素。
输出不包含ProductCategory的Category的id。
allCategories.xml如下:
java代码如下:
输出不包含ProductCategory的Category的id。
allCategories.xml如下:
<Categories>
<Category>
<Name>categoryname</Name>
<ID>1</ID>
<Category>
<Name>2</Name>
<ID>5</ID>
<ProductCategory>
<Name>ProductName</Name>
<ID>6</ID>
</ProductCategory>
</Category>
<ProductCategory>
<Name>ProductName</Name>
<ID>70</ID>
</ProductCategory>
</Category>
<Category>
<Name>categoryName</Name>
<ID>2</ID>
<Category>
<Name>ProductName</Name>
<ID>5</ID>
<ProductCategory>
<Name>ProductName</Name>
<ID>6</ID>
</ProductCategory>
</Category>
</Category>
<Category>
<Name>categoryName</Name>
<ID>3</ID>
</Category>
</Categories>
java代码如下:
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
public class FilterUitl {
private boolean flag = false;
public boolean isContainProductCategory(Element element) {
if (element.getChildText("ProductCategory") != null) {
flag = true;
} else {
List childElementList = element.getChildren("Category");
if (childElementList != null) {
for (int i = 0; i < childElementList.size(); i++) {
if(flag==true)break;
isContainProductCategory((Element)childElementList.get(i));
}
}
}
return flag;
}
public static void main(String[] args) throws Exception {
CopyOfFilterUitl copyOfFilterUitl = new CopyOfFilterUitl();
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build("allCategories.xml");
Element root = doc.getRootElement();
List<Element> list = root.getChildren("Category");
System.out.println("一级Category元素 size : ---------------" + list.size());
for (int i = 0; i < list.size(); i++) {
Element element = (Element) list.get(i);
System.out.println("一级Category元素id: " + element.getChildText("ID"));
boolean flag = copyOfFilterUitl.isContainProductCategory(element);
if (!flag) {
System.out.println("不含有ProductCategory的一级Category元素id: "
+ element.getChildText("ID"));
}
copyOfFilterUitl.flag=false;
}
}
}