C'è un modo semplice per creare un plist con Java? Il risultato dovrebbe essere lo stesso della serializzazione di un dizionario nell'obiettivo C.Creazione di un plist utilizzando Java
6
A
risposta
4
La classe PList da code.google.com/xmlwise sembra più promettente per me.
1
Here è possibile trovare una classe PList per la creazione di PList molto facilmente.
1
È possibile utilizzare questa libreria: http://plist.sf.net/
Si scriverà NSObjects ai file e viceversa.
2
Non sono necessarie librerie Java esterne. Attenersi alla seguente procedura:
Creare un documento DOM vuoto autonomo.
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); DOMImplementation di = builder.getDOMImplementation(); DocumentType dt = di.createDocumentType("plist", "-//Apple//DTD PLIST 1.0//EN", "http://www.apple.com/DTDs/PropertyList-1.0.dtd"); Document doc = di.createDocument("", "plist", dt); doc.setXmlStandalone(true);
Imposta versione plist.
Element root = doc.getDocumentElement(); root.setAttribute("version", "1.0");
Inserire dati.
Element rootDict = doc.createElement("dict"); root.appendChild(rootDict); Element sampleKey = doc.createElement("key"); sampleKey.setTextContent("foo"); rootDict.appendChild(sampleKey); Element sampleValue = doc.createElement("string"); sampleValue.setTextContent("bar"); rootDict.appendChild(sampleValue);
Creare un trasformatore.
DOMSource domSource = new DOMSource(doc); TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); t.setOutputProperty(OutputKeys.ENCODING, "UTF-16"); t.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, dt.getPublicId()); t.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, dt.getSystemId()); t.setOutputProperty(OutputKeys.INDENT, "yes"); t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
Scrivere al file.
StringWriter stringWriter = new StringWriter(); StreamResult streamResult = new StreamResult(stringWriter); t.transform(domSource, streamResult); String xml = stringWriter.toString(); System.out.println(xml); // Optionally output to standard output. OutputStream stream = new FileOutputStream("example.plist"); Writer writer = new OutputStreamWriter(stream, "UTF-16"); writer.write(xml); writer.close();
si può quindi leggere un tale file in Objective-C come descritto dal Property List Programming Guide.
0
Le risposte esistenti sembrano complicate per casi semplici. Ecco una versione ridotta più breve:
import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.io.FileUtils;
public class PList {
public static String toPlist(Map<String,String> map) {
String s = "";
s += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
s += "<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n";
s += "<plist version=\"1.0\">\n";
s += "<dict>\n";
for(Entry<String,String> entry : map.entrySet()) {
s += " <key>" + entry.getKey() + "</key>\n";
s += " <string>" + entry.getValue() + "</string>\n";
}
s += "</dict>\n";
s += "</plist>\n";
return s;
}
public static void writePlistToFile(Map<String,String> map, File f) throws IOException {
FileUtils.writeStringToFile(f, toPlist(map), "utf-8");
}
}
Problemi correlati
- 1. creazione di un file plist programatically
- 2. Condivisione di un file plist utilizzando iCloud
- 3. Creazione di GUI utilizzando GroupLayout in Java
- 4. Creazione di un Makefile Java
- 5. Come posso aggiungere una matrice a un plist utilizzando PlistBuddy?
- 6. Creazione oggetto monitor utilizzando ASM in Java
- 7. Creazione di un compilatore o di un interprete utilizzando Python
- 8. Creazione di un grafico in java
- 9. Come caricare un UIColor da un Plist
- 10. Esiste un editor .plist online?
- 11. Lettura di dati da un file plist
- 12. Java Data di creazione oggetto utilizzando una stringa valore
- 13. Creazione di un dizionario ordinato utilizzando ToDictionary
- 14. Creazione di un eseguibile autoestraente utilizzando PHP
- 15. Creazione di un IFRAME utilizzando JavaScript
- 16. creazione di attività utilizzando un ciclo [gulp]
- 17. Creazione di un collegamento simbolico con Java
- 18. Creazione di un timestamp univoco in Java
- 19. Creazione di un server java con riposo
- 20. Percorso di creazione Java
- 21. Qual è l'uso di plist?
- 22. Creazione di un albero utilizzando un elenco di oggetti
- 23. Crea file manifest wireless (estensione .plist) utilizzando Xcode
- 24. Creazione di un generatore di "Chiave di attivazione" in JAVA
- 25. Creazione del servizio Web Java utilizzando Google AppEngine
- 26. Creazione oggetto utilizzando parola chiave static in Java
- 27. Come leggere i file .plist OSX da Java?
- 28. Creazione di un programma di installazione per l'applicazione desktop Java
- 29. Come scrivere un dato in plist?
- 30. Overhead creazione di thread Java
Se si preferisce non utilizzare librerie di terze parti, vedere la risposta: http://stackoverflow.com/a/11619384/974531 –