Java使用DOM方式解析xml文件

 XML解析
根据提供的patient.xml文件,获取xml文件中机构名称、患者本地ID、姓名、出生日期、身份证号。
解析框架不限,如dom4j,jdom, sax, jackson等

 <!-- patient.xml -->

<?xml version="1.0" encoding="UTF-8"?>
<DATA>
    <!-- 消息ID -->
    <MSG_ID>836A741B5A244D0BE053C40810ACE7BB</MSG_ID>
    <!-- 机构编码 -->
    <ORG_CODE>1221000042243630Q</ORG_CODE>
    <!-- 机构名称 -->
    <ORG_NAME>XX医科大学第一附属医院</ORG_NAME>
    <!-- 域代码 -->
    <DOMAIN_ID>01</DOMAIN_ID>
    <!-- 患者本地ID -->
    <LOCAL_ID>1000001</LOCAL_ID>
    <!-- 门诊号 -->
    <OUTPATIENT_NO>1000001</OUTPATIENT_NO>
    <!-- 住院号 -->
    <INPATIENT_NO/>
    <!-- 姓名 -->
    <PATIENT_NAME>测试人员姓名</PATIENT_NAME>
    <!-- 性别代码 -->
    <GENDER_CODE>1</GENDER_CODE>
    <!-- 性别名称 -->
    <GENDER_NAME>男性</GENDER_NAME>
    <!-- 出生日期 -->
    <BIRTH_DATE>19900909</BIRTH_DATE>
    <!-- 身份证号 -->
    <SOCIAL_NO>110101199009091234</SOCIAL_NO>
    <!-- 联系电话 -->
    <TELECOM>13412345678</TELECOM>
    <!-- 邮箱 -->
    <EMAIL>[email protected]</EMAIL>
</DATA>

下面是效果和代码截图

下面是具体代码

package com.xxx.test;

import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/**
 * 用DOM方式解析patient.xml文件
 * @author fd
 * @Date xxx
 * 需求:获取patient.xml文件中机构名称、患者本地ID、姓名、出生日期、身份证号。
 * 机构名称:ORG_NAME
 * 患者本地ID:LOCAL_ID
 * 姓名:PATIENT_NAME
 * 出生日期:BIRTH_DATE
 * 身份证号:SOCIAL_NO
 */
public class ReadXmlByDom {
	
	public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException{
		
		// 1.建立DocumentBuilderFactor,用于获得DocumentBuilder对象:
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		// 2.建立DocumentBuidler:
		DocumentBuilder builder = factory.newDocumentBuilder();
		// 3.建立Document对象,获取树的入口:
		Document doc = builder.parse("src/resouse/patient.xml");
		// 4.建立NodeList:
		NodeList node = doc.getElementsByTagName("DATA");
		// 5.进行xml信息获取
		for(int i=0;i<node.getLength();i++){
		
			Element e = (Element)node.item(i);
			System.out.println("机构名称:" + e.getElementsByTagName("ORG_NAME").item(0).getFirstChild().getNodeValue());
			System.out.println("患者本地ID:" + e.getElementsByTagName("LOCAL_ID").item(0).getFirstChild().getNodeValue());
			System.out.println("姓名:" + e.getElementsByTagName("PATIENT_NAME").item(0).getFirstChild().getNodeValue());
			System.out.println("出生日期:" + e.getElementsByTagName("BIRTH_DATE").item(0).getFirstChild().getNodeValue());
			System.out.println("身份证号:" + e.getElementsByTagName("SOCIAL_NO").item(0).getFirstChild().getNodeValue());
			
		}	
	}
}
发布了149 篇原创文章 · 获赞 37 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/frdevolcqzyxynjds/article/details/103556258