提取xml文档的内容到.txt文件中

这是xml文档

<?xml version="1.0" encoding="ISO-8859-1"?>
<JDBOR date="2014-07-01 04:13:13" version="1.0.20 [2012-12-14]" copyright="Orphanet (c) 2014">
  <DisorderList count="6942">
    <Disorder id="17601">/
      <OrphaNumber>166024</OrphaNumber>/
      <ExpertLink lang="en">http://www.orpha.net/consor/cgi-bin/OC_Exp.php?lng=en&amp;Expert=166024</ExpertLink>
      <Name lang="en">Multiple epiphyseal dysplasia, Al-Gazali type</Name>/
      <DisorderFlagList count="1">
        <DisorderFlag id="2"/>
      </DisorderFlagList>
      <SynonymList count="1">
        <Synonym lang="en">Multiple epiphyseal dysplasia - macrocephaly - distinctive facies</Synonym>
      </SynonymList>
      <ExternalReferenceList count="2">
        <ExternalReference id="38949">
          <Source>OMIM</Source>/
          <Reference>607131</Reference>/
        </ExternalReference>
        <ExternalReference id="78407">/
          <Source>ICD10</Source>/
          <Reference>Q77.3</Reference>/
        </ExternalReference>
      </ExternalReferenceList>
    </Disorder>
    <Disorder id="17603">
      <OrphaNumber>166032</OrphaNumber>
      <ExpertLink lang="en">http://www.orpha.net/consor/cgi-bin/OC_Exp.php?lng=en&amp;Expert=166032</ExpertLink>
      <Name lang="en">Multiple epiphyseal dysplasia, with miniepiphyses</Name>
      <DisorderFlagList count="1">
        <DisorderFlag id="2"/>
      </DisorderFlagList>
      <SynonymList count="0">
      </SynonymList>
      <ExternalReferenceList count="2">
        <ExternalReference id="38953">
          <Source>OMIM</Source>
          <Reference>609325</Reference>
        </ExternalReference>
        <ExternalReference id="78405">
          <Source>ICD10</Source>
          <Reference>Q77.3</Reference>
        </ExternalReference>
      </ExternalReferenceList>
    </Disorder>

 </DisorderList>
</JDBOR>

提取出来的.txt文件的数据

这是en_product1_Result_OMIM.txt文档

17601 166024Multiple epiphyseal dysplasia, Al-Gazali type607131/
17603 166032 Multiple epiphyseal dysplasia, with miniepiphyses 609325/
2 58 Alexander disease203450/
17602 166029 Multiple epiphyseal dysplasia, with severe proximal femoral dysplasia609324/

对应的Java代码:

<pre name="code" class="java">package com.yanek.demo.xml.test;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.util.ArrayList;

public class xmltran1 {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {

		// dom4,xml

		SAXReader saxReader = new SAXReader();
		try {
			Document document = saxReader.read(new File("D:\\root\\data\\en_product1.xml"));
			Element root = document.getRootElement();//得到根节点
			FileWriter f=new FileWriter(new File("d:\\en_product1_Result_OMIM.txt"), true);
			FileWriter f1=new FileWriter(new File("d:\\en_product1_Result_MSEH.txt"), true);
			//FileWriter f1=new FileWriter(new File("E:\\新建文件夹\\a.txt"), true);
			FileWriter f2=new FileWriter(new File("d:\\en_product1_Result_UMLS.txt"), true);
			FileWriter f3=new FileWriter(new File("d:\\en_product1_Result_ICD.txt"), true);
			BufferedWriter writer1 = new BufferedWriter(f);
			BufferedWriter writer2 = new BufferedWriter(f1);
			BufferedWriter writer3 = new BufferedWriter(f2);
			BufferedWriter writer4 = new BufferedWriter(f3);
			List actions = root.elements("DisorderList");
			for(int i = 0; i < actions.size(); i++){
				Element action = (Element) actions.get(i);
				List list1 = action.elements("Disorder");
				for(int j = 0; j < list1.size(); j++){
					Element element1 = (Element) list1.get(j);
					System.out.println("Disorder id:"+ element1.attributeValue("id"));
					writer1.write(element1.attributeValue("id")+"\t");
					writer2.write(element1.attributeValue("id")+"\t");
					writer3.write(element1.attributeValue("id")+"\t");
					writer4.write(element1.attributeValue("id")+"\t");
					List list2 = element1.elements("OrphaNumber");
					List<String> ls2 = new ArrayList<String>();
					Element element6 = (Element) list2.get(0);
					ls2.add(element6.getText());
					System.out.println("OrphaNumber:"+ element6.getText());
					writer1.write(ls2.get(0)+"\t");
					writer2.write(ls2.get(0)+"\t");
					writer3.write(ls2.get(0)+"\t");
					writer4.write(ls2.get(0)+"\t");
					List list3 = element1.elements("Name");
					List<String> ls3 = new ArrayList<String>();
					Element element5 = (Element) list3.get(0);
					ls3.add(element5.getText());
					System.out.println("Name:"+ element5.getText());
					writer1.write(ls3.get(0)+"\t");
					writer2.write(ls3.get(0)+"\t");
					writer3.write(ls3.get(0)+"\t");
					writer4.write(ls3.get(0)+"\t");
					List list4 = element1.elements("ExternalReferenceList");
					for (int m = 0; m < list4.size(); m++) {
						Element element2 = (Element) list4.get(m);
						List list5 = element2.elements("ExternalReference");
						for(int p = 0; p < list5.size(); p++){
							Element element3 = (Element) list5.get(p);
							System.out.println("ExternalReference id:"+ element3.attributeValue("id"));
							//writer1.write(element3.attributeValue("id")+"\t");
							//writer2.write(element3.attributeValue("id")+"\t");
							//writer3.write(element3.attributeValue("id")+"\t");
							List list6 = element3.elements("Source");
							Element element4 = (Element) list6.get(0);
							System.out.println("Source:"+ element4.getText());
							if(element4.getText().equals("OMIM")){
								/*
								List<String> ls6 = new ArrayList<String>();
								ls6.add(element4.getText());
								System.out.println("Source1:"+ element4.getText());
								writer1.write(ls6.get(0)+"\t");
								*/
								List list7 = element3.elements("Reference");
								List<String> ls7 = new ArrayList<String>();
								Element element7 = (Element) list7.get(0);
								ls7.add(element7.getText());
								System.out.println("Reference:"+ element7.getText());
								writer1.write(ls7.get(0)+"/");
							}else if(element4.getText().equals("ICD10")){
								/*
								List<String> ls6 = new ArrayList<String>();
								ls6.add(element4.getText());
								System.out.println("Source1:"+ element4.getText());
								writer4.write(ls6.get(0)+"\t");
								*/
								List list7 = element3.elements("Reference");
								List<String> ls7 = new ArrayList<String>();
								Element element7 = (Element) list7.get(0);
								ls7.add(element7.getText());
								System.out.println("Reference:"+ element7.getText());
								writer4.write(ls7.get(0)+"/");
							}else if(element4.getText().equals("MESH")){
								/*
								List<String> ls6 = new ArrayList<String>();
								ls6.add(element4.getText());
								System.out.println("Source:"+ element4.getText());
								writer2.write(ls6.get(0)+"\t");
								*/
								List list7 = element3.elements("Reference");
								List<String> ls7 = new ArrayList<String>();
								Element element7 = (Element) list7.get(0);
								ls7.add(element7.getText());
								System.out.println("Reference:"+ element7.getText());
								writer2.write(ls7.get(0)+"/");
							}else if(element4.getText().equals("UMLS")){
								/*
								List<String> ls6 = new ArrayList<String>();
								ls6.add(element4.getText());
								System.out.println("Source:"+ element4.getText());
								writer3.write(ls6.get(0)+"\t");
								*/
								List list7 = element3.elements("Reference");
								List<String> ls7 = new ArrayList<String>();
								Element element7 = (Element) list7.get(0);
								ls7.add(element7.getText());
								System.out.println("Reference:"+ element7.getText());
								writer3.write(ls7.get(0)+"/");
							}
							
						}
					}
					writer1.write("\r\n");
					writer2.write("\r\n");
					writer3.write("\r\n");
					writer4.write("\r\n");
					writer1.flush();
					writer2.flush();
					writer3.flush();
					writer4.flush();
				}	
			}	
		writer1.close();
		writer2.close();
		writer3.close();
		writer4.close();
		}catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	
	}
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值