view src/de/mpiwg/itgroup/eSciDoc/Tools/DRI/ConvertXMLToDRIList.java @ 11:ecd66e70cb65

Tools for adding and changing DRIs in index.meta
author dwinter
date Thu, 26 Jul 2012 11:24:03 +0200
parents
children 94ea06e32003
line wrap: on
line source

package de.mpiwg.itgroup.eSciDoc.Tools.DRI;

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

import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.Namespace;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;

import de.mpiwg.itgroup.eSciDoc.Tools.EScidocTools;
import de.mpiwg.itgroup.eSciDoc.utils.EScidocNameSpaceContext;

public class ConvertXMLToDRIList {

	private File inFile;
	private File outFile;

	public ConvertXMLToDRIList(String inFile, String outFile){
		this.inFile=new File(inFile);
		this.outFile=new File(outFile);
		
	}
	
	public void convert() throws JDOMException, IOException{
		SAXBuilder  builder = new SAXBuilder();
		Document doc = builder.build(inFile);
		
		XPath xp = EScidocTools.getESciDocXpath("//escidocItem:item");
		List<Element> res = xp.selectNodes(doc);
		
		FileWriter out = new FileWriter(outFile);
		
		for (Element el:res){
			XPath apPath = EScidocTools.getESciDocXpath(".//mpiwg:archivePath");
			Element ap = (Element) apPath.selectSingleNode(el);
			String path = ap.getTextTrim();
			
			//XPath propPath = EScidocTools.getESciDocXpath("./escidocItem:properties");
			//Element prop = (Element) propPath.selectSingleNode(el);
			Namespace xlNs = Namespace.getNamespace(EScidocNameSpaceContext.xlink);
			Attribute attr = el.getAttribute("href", xlNs);
			String[] splitted = attr.getValue().split("/"); 
			String id = splitted[splitted.length-1];
			
			out.write(String.format("%s\t%s\n", path,id));
			
			

		}
		
		out.close();

	}
	
	public static void main(String[] args) throws IOException, JDOMException {
		if (args.length <2){
			System.out.print("USAGE: fileIN filenOUT");
			System.exit(0);
		}
		ConvertXMLToDRIList cv = new ConvertXMLToDRIList(args[0], args[1]);
		cv.convert();
	}
}