Dom4j使用总结

XML是一个展示良好的报文格式,在SOA架构中广泛应用,并且在Dom操作中性能优异,但也不适合大报文的频繁转换。我们在做细化操作的时候,查找指定报文往往是我们需要大量操作。所以我们今天针对DOM4J中的查询进一步整理。DOM4j中有4中元素,分别是Node,Document,Element,Attribute以上四类元素,我们现在来分别介绍这4中元素,整个报文是一个Document,Document中的每个节点是一个Element,而Element中定义的属性是Attribute,其中Node是一个特殊的节点,他可以代表以上三种的任何一种。那么大家可能迷惑为什么有其他三种节点已经可以表示一个完整的报文了,为什么还需要Node节点呢?因为我们在实际工作中,路径的写法是非常的灵活的,可能是“/”表示Document,或是/aa/bb的Element,或是/aa/bb/@code的Attribute。为了适配统一的方法,所以我们使用Node。现在大家可以明白了Node的作用是什么了吧。接下来我们上一段代码,代码作用是判断给定的路径是不是合法路径,不是合法就是固定值。

@SuppressWarnings("unchecked")
	public String getPathorFixValue(String text, String xml) {
		String result = "";
		try {
			Document doc = DocumentHelper.parseText(xml);
			XPath xpath = this.getXPath(doc, text);
			if (xpath == null) {
				result = text;
			} else {
				List<Node> lis = xpath.selectNodes(doc);
				if (lis.get(0) instanceof Element) {
					result = lis.get(0).asXML();
				} else if (lis.get(0) instanceof Attribute) {
					result = lis.get(0).getText();
				} else if (lis.get(0) instanceof Document) {
					result = lis.get(0).asXML();
				}
			}
		} catch (DocumentException e) {
			logger.info("报文[" + xml + "]不合法,请检查报文后重试!");
		}
		return result;
	}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值