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());
}
}
}