`

使用jdom迭代xml元素

    博客分类:
  • 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
分享到:
评论

相关推荐

    JDOM解析xml文档实例(自己编写,仅供参考)

    4. 遍历XML结构:使用迭代器遍历元素和子元素,如`for (Element child : rootElement.getChildren()) { ... }` 5. 修改XML:如果需要修改XML,可以使用`Element`对象的`setText`、`setAttribute`等方法,然后使用`...

    java读取XML(JDOM)

    总的来说,使用JDOM处理XML文件涉及到创建解析器,加载XML文件,获取和操作XML文档的元素及属性。通过这些步骤,我们可以方便地读取和解析XML数据,将其转化为Java对象,进行进一步的业务处理。对于开发者来说,掌握...

    用jdom解析xml源码下载

    对于子元素,可以使用迭代器`Iterator&lt;Element&gt;`遍历。 ```java Element root = document.getRootElement(); String rootName = root.getName(); // 获取元素名 List&lt;Element&gt; childElements = root....

    jdom 解析xml存入hashmap的例子

    获取XML文档的根元素`&lt;employees&gt;`,然后迭代其子元素`&lt;employee&gt;`。对于每个员工元素,获取其属性`id`,以及`&lt;name&gt;`和`&lt;position&gt;`子元素的文本内容。将这些信息存储在HashMap中,其中键是员工ID,值是另一个...

    JDOM解析XML

    **JDOM解析XML** JDOM,全称Java Document Object Model,是Java平台上的一个开源库,专门用于处理XML文档。它提供了一种高效且灵活的...随着版本的迭代,JDOM在性能和易用性上都有所提升,使得XML处理变得更加便捷。

    Jdom解析嵌套XML<一>

    总之,"Jdom解析嵌套XML&lt;一&gt;"这篇文章可能会深入讲解如何使用JDOM库来解析和操作具有复杂嵌套结构的XML文档,包括创建、遍历、修改XML元素和属性的方法,以及一些最佳实践和注意事项。通过学习这些内容,开发者可以...

    jdom所需要的包对xml操作

    4. **修改XML内容**:直接修改JDOM对象的属性或子元素,然后使用`org.jdom2.output.Format`和`org.jdom2.output.XMLOutputter`将更新后的文档写回文件。 5. **命名空间支持**:JDOM提供对XML命名空间的全面支持,...

    解析XML文件的四种方式整合

    下面是如何使用JDOM解析XML的示例: ```java SAXBuilder builder = new SAXBuilder(); Document doc = builder.build("example.xml"); Element root = doc.getRootElement(); // 访问和操作XML元素 ``` 这四种方法...

    Jdom.rar下载

    4. **遍历XML结构**:利用迭代器遍历元素及其子元素。 ```java for (Content content : root.getContent()) { if (content instanceof Element) { Element elem = (Element) content; // 处理元素... } } ``` ...

    解析xml的jar包

    - 可以使用递归函数或迭代遍历XML树的各个层级。 - `Element.getChild()`和`Element.getChildren(String name)`用于获取特定名称的子元素。 4. **修改XML**: - JDOM允许在内存中修改XML结构,如添加、删除或...

    JDOM_API_帮助文档

    3. **遍历XML**:使用迭代器或递归遍历Element的子元素。 ```java for (Object obj : root.getContent()) { if (obj instanceof Element) { Element elem = (Element) obj; // 处理元素 } } ``` 4. **修改XML*...

    Jdom处理listOrMap

    当XML元素代表一个列表时,可以使用JDOM遍历或修改这些元素。例如,创建一个`Element`代表列表,然后多次调用`addElement()`方法添加子元素。在解析时,可以使用`getChildren()`方法获取所有子元素,并通过迭代器...

    JDOMAPI(html)

    4. **遍历和修改XML**: 使用迭代器遍历`Element`的子元素,或者通过`getChild(String name)`、`getChildren(String name)`获取特定的元素,然后进行修改。 5. **输出XML**: `Document`对象提供了`OutputFormat`和`...

    jdom.rar 包括API与jar包

    若要遍历所有子元素,可以使用迭代器: ```java Iterator&lt;Element&gt; elements = rootElement.elementIterator(); while (elements.hasNext()) { Element childElement = elements.next(); // 处理每个子元素 } ``` ...

    jdom-1.0包,可用

    - **JDOM**:面向对象,易于使用,但内存消耗较大,适合小型或中型XML文档。 7. **注意事项** - JDOM 1.0不完全兼容DOM规范,这可能导致与某些DOM工具或库的互操作性问题。 - 在JDOM 1.0中,没有提供内置的支持...

    读取XML文件的四种方法

    使用JDOM方法读取XML文件,需要创建SAXBuilder对象,读取XML文件得到Document对象,然后使用Element对象的getChild Elements方法获取指定标签的元素列表,遍历元素列表进行数据提取。 优点:JDOM方法提供了高效的...

    JDOM 解释 简单

    5. **循环处理子元素**: 通过迭代器或索引遍历 `booklist`,对每个 `&lt;book&gt;` 元素进行操作,例如获取属性值、修改文本内容等。 ```java for (Iterator&lt;Element&gt; iter = booklist.iterator(); iter.hasNext();) { ...

    jdom api 英文版

    然而,对于非常大的XML文档,JDOM可能不如StAX或DOM4J等其他XML库高效,因为它们使用迭代器模式或分部解析来处理文档,避免一次性加载整个文档到内存。 总之,JDOM API是Java开发者处理XML的一种强大工具,它提供了...

    xml(jdom-dom4j).rar_DOM4J_dom4j xml java

    例如,可以使用`Element.elementIterator()`迭代所有子元素,找到特定元素后,用`element.detach()`删除,或者用`element.addAttribute("name", "value")`添加或修改属性。 4. **XPath支持**: DOM4J支持XPath...

    JDOM中XPath.selectNodes()和XPath.selectSingleNode()用法

    在Java开发中,XML处理是常见的任务之一,...在提供的`jdomdemo`压缩包文件中,可能包含了一个或者多个示例程序,演示了如何使用JDOM和XPath进行XML处理。你可以解压并运行这些程序,以便更直观地理解它们的工作原理。

Global site tag (gtag.js) - Google Analytics