`

使用jdom迭代xml元素

    博客分类:
  • XML
阅读更多
迭代判断Categories下的Category元素下是否含有ProductCategory元素。
输出不包含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;
		}
	}
}
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics