¿Hay alguna manera fácil de crear un plist con Java? El resultado debe ser el mismo que el de serializar un diccionario en Objective C.Creando un plist usando Java
6
A
Respuesta
4
La clase PList de code.google.com/xmlwise parece más prometedora para mí.
1
Here puede encontrar una clase PList para crear PList muy fácilmente.
1
Se puede usar esta biblioteca: http://plist.sf.net/
Se escribirá NSObjects a los archivos y viceversa.
2
No necesita ninguna biblioteca Java externa. Utilice los siguientes pasos:
Cree un documento DOM vacío e independiente.
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);
Set plist version.
Element root = doc.getDocumentElement(); root.setAttribute("version", "1.0");
Ingrese los datos.
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);
Crear un transformador.
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");
Escribir en archivo.
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();
continuación, se puede leer un archivo de este tipo en Objective-C como se describe por el Property List Programming Guide.
0
Las respuestas existentes parecen complicadas para casos simples. Aquí hay una versión más corta restringida:
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");
}
}
Cuestiones relacionadas
- 1. Creando un proyecto multi Java usando Gradle
- 2. Creando un gráfico en java
- 3. Creando un método hashCode() - Java
- 4. Creando un archivo XML simple usando python
- 5. Creando un EF CodeFirst DbContext usando Roslyn
- 6. Creando un nuevo vector usando una transformación
- 7. Cómo guardar MKMapRect en un plist
- 8. Creando un bot de IRC en Java
- 9. Creando un bloqueo de Java personalizado prompt
- 10. Creando un enlace duro en java
- 11. Cómo cargar un UIColor de un Plist
- 12. crear un archivo plist programáticamente
- 13. creando enumeración usando .NET CodeDom
- 14. Creando documentos OpenXML usando JavaScript
- 15. C# Creando y usando funciones
- 16. creando la función usando newID()
- 17. Creando archivo Zip usando SharpZipLib
- 18. Creando archivo zip en Java
- 19. Compartiendo un archivo plist utilizando iCloud
- 20. Creando una cuadrícula en Java
- 21. Creando objetos en Java pregunta
- 22. Guardar NSDictionary a plist
- 23. datos de acceso plist
- 24. codeigniter creando un directorio
- 25. Método para obtener un valor de plist
- 26. Cómo analizar un archivo .plist con php?
- 27. Cómo leer archivos .plist de OSX de Java?
- 28. Creando Aserción de OpenSAML desde un XML dado en Java
- 29. Crear una aplicación plist
- 30. Almacenar imagen en plist
Si prefiere no utilizar bibliotecas de terceros, consulte mi respuesta: http://stackoverflow.com/a/11619384/974531 –