Skip to content

Instantly share code, notes, and snippets.

@jirikrepl
Created October 26, 2015 11:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jirikrepl/477b3f77a85ede5ffdc2 to your computer and use it in GitHub Desktop.
Save jirikrepl/477b3f77a85ede5ffdc2 to your computer and use it in GitHub Desktop.
import groovy.xml.XmlUtil
@Grab('com.yourmediashelf.fedora.client:fedora-client-core:0.7')
import static com.yourmediashelf.fedora.client.FedoraClient.*;
import com.yourmediashelf.fedora.client.*
import com.yourmediashelf.fedora.client.response.*
import com.yourmediashelf.fedora.client.request.*
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.CharacterData;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
FedoraCredentials credentials = new FedoraCredentials("http://fedoratest.mzk.cz/fedora", "fedoraAdmin", "fedoraAdmin");
FedoraClient fedora = new FedoraClient(credentials);
FedoraRequest.setDefaultClient(fedora);
FedoraResponse response = getDatastreamDissemination("uuid:530719f5-ee95-4449-8ce7-12b0f4cadb22", "DC").execute();
String xmlString = response.getEntity(String.class);
/*
Node editedXml = new XmlParser().parseText(xmlString)
editedXml.'dc:type'.replaceNode {
'dc:type'('model:sheetmusic')
}
StringWriter stringWriter = new StringWriter()
XmlNodePrinter nodePrinter = new XmlNodePrinter(new PrintWriter(stringWriter));
nodePrinter.setPreserveWhitespace(true);
nodePrinter.print(editedXml);
String editedXmlString = stringWriter.toString();
println(editedXmlString);
*/
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new StringReader(xmlString));
//Node dcType = doc.getElementsByTagName("dc:type").item(0);
//dcType.setTextContent("model:sheetmusic");
//System.out.println("Title: " + getCharacterDataFromElement(doc));
//modifyDatastream("uuid:530719f5-ee95-4449-8ce7-12b0f4cadb22", "DC").content(editedXmlString).execute();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment