使用dom4j解析xml(示例代码)

XML:

<?xml version="1.0" encoding="UTF-8"?>
<decorators >
	<decorator id="1">
		<name>班级首页</name>
		<sort>1</sort>
		<parentId>0</parentId>
		<parentIds>0,</parentIds>
		<websiteType>班级网站</websiteType>
		<contentForm>文章</contentForm>
		<secondLevelPage>3</secondLevelPage>
	</decorator>
	<decorator id="2">
		<name>班级活动</name>
		<sort>2</sort>
		<parentId>0</parentId>
		<parentIds>0,</parentIds>
		<websiteType>班级网站</websiteType>
		<contentForm>文章</contentForm>
		<secondLevelPage>1</secondLevelPage>
	</decorator>
</decorators>

Java代码:

//1、创建一个DocumentBuilderFactory的对象
			        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
			        //2、创建一个DocumentBuilder的对象
			        try {
			            //创建DocumentBuilder对象
			            DocumentBuilder db = dbf.newDocumentBuilder();
			            //获取xml路径
			            String staticUrl = request.getSession().getServletContext().getRealPath("/static/directoryXml/decorators.xml");
 
			            //3、通过DocumentBuilder对象的parser方法加载directory.xml文件到当前项目下
			            Document document = db.parse(staticUrl);//传入文件名可以是相对路径也可以是绝对路径
			            //获取所有decorator节点的集合
			            NodeList dirList = document.getElementsByTagName("decorator");
			            //遍历每一个节点
			            for (int k = 0; k < dirList.getLength(); k++) {
			            	Element element = (Element) dirList.item(k);
			                // 此时element就是一个具体的元素

			                // 节点getNodeValue的值永远为null,加上getFirstChild()
			                String name = element.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
			                // 后面类似处理即可:
			                String sort = element.getElementsByTagName("sort").item(0).getFirstChild().getNodeValue();
			                String parentId = element.getElementsByTagName("parentId").item(0).getFirstChild().getNodeValue();
			                String parentIds = element.getElementsByTagName("parentIds").item(0).getFirstChild().getNodeValue();
			                String websiteType = element.getElementsByTagName("websiteType").item(0).getFirstChild().getNodeValue();
			                String contentForm = element.getElementsByTagName("contentForm").item(0).getFirstChild().getNodeValue();
			                String secondLevelPage = element.getElementsByTagName("secondLevelPage").item(0).getFirstChild().getNodeValue();
			                
			                CmsDirectory cmsDirectory = new CmsDirectory();
			              
			                cmsDirectory.setName(name);
			                cmsDirectory.setWebsiteID(cmsWebsite.getId());
			                cmsDirectory.setName(name);
			                cmsDirectory.setSort(Integer.parseInt(sort));
			                cmsDirectory.setParentId(parentId);
			                cmsDirectory.setParentIds(parentIds);
			                cmsDirectory.setWebsiteType(websiteType);
			                cmsDirectory.setContentForm(contentForm);
			                cmsDirectory.setSecondLevelPage(secondLevelPage);
			                cmsDirectory.setCreateUser(UserUtils.getUser().getName());
			                cmsDirectory.setCreateUserID(UserUtils.getUser().getId());
			                cmsDirectory.setCreateTime(new Date());
			                cmsDirectoryService.save(cmsDirectory);//保存栏目
			            }

			        } catch (ParserConfigurationException e) {
			            e.printStackTrace();
			        } catch (SAXException e) {
			            e.printStackTrace();
			        } catch (IOException e) {
			            e.printStackTrace();
			        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值