使用dom4j解析xml字符串

使用dom4j解析xml字符串

今天接到任务 解析v3入参字符串xml,于是莫怕!

1.创建document对象

public class XmlUtil {
    //加载XML
    public static Document load(String xml, String charsetName) {
        Document document = null;
        try {
            InputStream inputStream = new ByteArrayInputStream(xml.getBytes(charsetName));
            document = new SAXReader().read(inputStream);
        } catch (UnsupportedEncodingException | DocumentException e) {
            e.printStackTrace();
            throw LogicException.of("his:" + xml);
        }
        return document;
    }
}

2.去除xmlns=\"urn:hl7-org:v3\"

public String checkStatusInfoUpdate(String param) {
        Map<String, String> result = new HashMap<>();
        param = param.replace("xmlns=\"urn:hl7-org:v3\"", "");
        Document document = XmlUtil.load(param, "utf-8");
        //获取到遍历节点
        List<Element> nodesList = document.selectNodes("//POOR_IN200902UV//controlActProcess//subject//placerGroup//component2//observationRequest");
        for (Element element : nodesList) {
            List<Node> items = element.selectNodes("id//item//@extension");
            List<Node> state = element.selectNodes("statusCode//@code");
            result.put("id", items.get(0).getStringValue());
            result.put("code", state.get(0).getStringValue());
            result.put(items.get(0).getStringValue(),state.get(0).getStringValue());
        }
    return "1";
}

3.demo文件

<POOR_IN200902UV ITSVersion="XML_1.0" xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 ../multicacheschemas/POOR_IN200902UV.xsd">
	<controlActProcess classCode="CACT" moodCode="EVN">
		<subject typeCode="SUBJ" xsi:nil="false">
			<placerGroup>
				<component2>
					<observationRequest >
						<id>
							<item extension="申请单号"/>
						</id>
						<statusCode code="状态代码" />
					</observationRequest>
				</component2>
			</placerGroup>
		</subject>
	</controlActProcess>
</POOR_IN200902UV>

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值