首页 > 编程语言 >java解析Xml文件

java解析Xml文件

时间:2023-12-15 19:03:04浏览次数:25  
标签:Xml case java setText getValue break misElement element 解析

		iFile = getEditor().getEditorInput().getAdapter(IFile.class);
		File file = new File(iFile.getLocation().toString());
		Map<String, String> columnsMap = new HashMap<>();
		if (file.exists()) {
			SAXReader reader = new SAXReader();
			try {
				document = reader.read(file);
				Element root = document.getRootElement().element("Bmt");
				Attribute mAttribute = root.attribute("localLabel");
				type = root.attribute("type").getValue();
				TypeName = root.attribute("typename").getValue();

				if (mAttribute == null) {
					localLabel = "";
				} else {
					localLabel = mAttribute.getValue();
				}
				
				Element rows = root.element("rows");
				if (rows != null) {
					List<Element> linksElements = rows.elements("links");
					for (Element element : linksElements) {
						switch(element.attributeValue("name")) {
						case "authorName":
							text_6.setText(getValue(element));
							break;
						case "edition":
							text_7.setText(getValue(element));
							break;
						case "operationalArea":
							text_8.setText(getValue(element));
							break;
						case "battlefieldEnvironment":
							text_9.setText(getValue(element));
							break;
						case "startTime":
							Date sdate = parseDateString(getValue(element));
					        if (sdate != null) {
					            dateTime.setDate(sdate.getYear() + 1900, sdate.getMonth(), sdate.getDate());
					        }
							break;
						case "endTime":
							Date edate = parseDateString(getValue(element));
					        if (edate != null) {
					            dateTime_1.setDate(edate.getYear() + 1900, edate.getMonth(), edate.getDate());
					        }
							break;
						case "threatTarget":
							text_10.setText(getValue(element));
							break;
						case "operationalBackground":
							text_11.setText(getValue(element));
							break;
						case "backgroundLink"://背景链接
							List<Element> backgroundElements = element.elements("link");
							backgroundLink.clear();
							for (Element bgElement : backgroundElements) {
								TableItem newItem = new TableItem(table_1, SWT.NONE);
					            newItem.setText(bgElement.getText());
					            backgroundLink.put(bgElement.getText(), "");
							}
							createTableFile();
							break;
						case "missions"://使命任务
							List<Element> missionsElements = element.elements("link");
							missMap.clear();
							for (Element misElement : missionsElements) {
								Map<String, String> mission = new HashMap<>();//使命任务
								TableItem newItem = new TableItem(table_2, SWT.NONE);
					            newItem.setText(0,misElement.attributeValue("name"));
					            newItem.setText(1,misElement.getText());
					            newItem.setData(misElement.attributeValue("id"));
					            mission.put(misElement.attributeValue("name"), misElement.getText());
					            missMap.put(misElement.attributeValue("id"), mission);
							}
							createTableFile();
							break;
						}
					}
				}
			} catch (Exception e1) {
				e1.printStackTrace();
			}
		}

标签:Xml,case,java,setText,getValue,break,misElement,element,解析
From: https://blog.51cto.com/u_16340211/8843673

相关文章

  • 无涯教程-Java - int compareTo(Object o)函数
    此方法将此字符串与另一个对象进行比较。intcompareTo-语法intcompareTo(Objecto)这是参数的详细信息-o  - 要比较的对象。intcompareTo-返回值两个对象比较,如果相等,则返回0,如果大于后面对象,则返回>0,否则返回<0intcompareTo-示例publicclassTest{p......
  • Python多线程编程:竞争问题的解析与应对策略
    本文将深入探讨Python多线程编程中可能出现的竞争问题、问题根源以及解决策略,旨在帮助读者更好地理解、应对并发编程中的挑战。多线程竞争问题的复杂性源自于对共享资源的并发访问和操作。在不同线程间的交叉执行中,共享资源可能因无序访问而导致数据不一致、死锁或饥饿等问题。解决......
  • Template Engines for Spring: FreeMarker | Java Server Pages | Thymeleaf | Jade4j
    Besidesthetemplateenginesdescribedsofar,therearequiteafewmoreavailablewhichmaybeused.Let’sreviewsomeofthembriefly.Velocity isanoldertemplateengine,whichisverycomplexbuthasthedisadvantagethatSpringhasdeprecateditsu......
  • Java面试小练(七)
    1).Java中Error与Exception的区别是什么?项目开发时自定义异常为什么要继承RuntimeException,而不是Exception?Java中的Error和Exception都是Throwable类的子类,但它们之间有一些区别。Error通常表示JVM或底层系统出现了无法恢复的问题,例如OutOfMemoryError、StackOverflowError......
  • freemarker模板数据解析1--页面语法直接获取
    freemarker模板数据解析1--页面语法直接获取​ 对后端接口传递过来的Map<String,List>类型数据的展示。对于普通Map<String,String>数据,我们很清楚,直接上代码:·接口提供数据:Map<String,String>map=newHashMap<>();map.put("k1","v1");map.put("k2","v2"......
  • Tomcat servelet javax 和 jakarta
    *[GitHub-apache/tomcat-jakartaee-migration:ApacheTomcatmigrationtoolforJakartaEE](https://github.com/apache/tomcat-jakartaee-migration)*[未来可期!但别再傻傻分不清javax和jakarta](https://baijiahao.baidu.com/s?id=1758965939027753195)*[[Solved]The......
  • Java Web开发阶段注解
    @Component标注Spring管理的Bean,使用@Component注解在一个类上,表示将此类标记为Spring容器中的一个Bean通过路径扫描来自动侦测以及自动装配到Spring容器中@Controller用于指示Spring类的实例是一个控制器,相对于实现Controller接口更加简单,使用Controller注解可以同时处理多个......
  • 无涯教程-Java - String Buffer & String Builder函数
    StringBuffer和StringBuilder类在需要对字符串进行大量修改时使用。与字符串不同,可以不停地修改StringBuffer和Stringbuilder类型的对象,而不会留下很多新的未使用对象。StringBuilder类是从Java5开始引入的,StringBuffer和StringBuilder之间的主要区别是StringBuilders......
  • java方法的定义与执行
    java中的方法在类中定义。定义方法格式:访问修饰符  返回值类型  方法名(参数列表){  ... 执行内容 ...  return返回值;}访问修饰符:表示方法在哪里能被访问到返回值类型:表示方法返回的数据的类型,如果没有返回值,就用void参数:可选的publicclassTest8{......
  • 秦疆的Java课程笔记:72 面向对象 instanceof和类型转换
    instanceof关键字,用于判断左边的实例对象是否是右边的类的实例。先创建4个类,父类Person,其子类Student和Teacher,测试类Application。在Application中测试instanceof语句://父类publicclassPerson{}//子类publicclassTeacherextendsPerson{}//子类publicclassStud......