Cómo eliminar los espacios en blanco entre etiquetas en XML
He creado un documento XML utilizando Java en mi aplicación Android. Tengo que llamar a un servicio web en mi aplicación y pasar este XML como un argumento allí. Pero mi problema es que creó un espacio en blanco entre cada etiqueta en el XML.
DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = dbfac.newDocumentBuilder(); Document doc = docBuilder.newDocument(); Element root = doc.createElement("subscriber"); doc.appendChild(root); //creating child node for username EditText txtusername=(EditText)findViewById(R.id.txtUserName); subscriber[0]=String.valueOf(txtusername.getText()); Element UserName=doc.createElement("UserName"); UserName.setTextContent(subscriber[0]); root.appendChild(UserName); //creating child node for PASSWORD EditText txtPassword=(EditText)findViewById(R.id.txtPassword); subscriber[1]=String.valueOf(txtPassword.getText()); Element Password=doc.createElement("Password"); Password.setTextContent(subscriber[1]); root.appendChild(Password); //set up a transformer TransformerFactory transfac = TransformerFactory.newInstance(); Transformer trans = transfac.newTransformer(); trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); trans.setOutputProperty(OutputKeys.INDENT, "yes"); //create string from xml tree StringWriter sw = new StringWriter(); StreamResult result = new StreamResult(sw); DOMSource source = new DOMSource(doc); trans.transform(source, result); String xmlString =sw.toString(); url = new URL("http://192.168.70.14/NewsLetter/subscribing.php?register= " + xmlString); conn = (HttpURLConnection) url.openConnection(); conn.addRequestProperty("Content-Type", "text/xml; charset=UTF-8"); dis = conn.getInputStream();
El XML es:
- Definiendo el orden Z de vistas de RelativeLayout en Android
- Org.eclipse.swt.SWTException: "Widget está eliminado" al intentar abrir AndroidManifest.xml
- Cómo hacer que Android soporte FloatingActionButton en la parte inferior derecha de la pantalla?
- Submenú del menú del cajón de navegación
- Android: ¿Cómo navegar de nuevo desde la sub-pantalla de preferencia a través de la barra de acción en xml?
<subscriber> <UserName>miya</UserName> <Password>today</Password> </subscriber>
Proporcione la solución para cómo quitar los espacios en blanco entre las etiquetas UserName
y Password
.
- RadioGroup checkedButton propiedad
- No se muestra ninguna imagen de fondo en Galaxy Nexus (SOLO)?
- ¿Cómo Android Studio valida XML para la pantalla de preferencias?
- Imagen de fondo de Android en archivo XML
- Android: Utilizar matriz de color en XML
- Eclipse android phonegap config.xml no funciona?
- Múltiples anotaciones encontradas en esta línea:
- Crear vista sobre cardview en android
Por supuesto, depende de su propio XML, sin embargo, puede intentar expresiones regulares.
Como ejemplo:
yourXmlAsString.replaceAll(">\\s*<", "><");
Quitar todos los espacios en blanco entre cada elemento XML.
Método DocumentBuilderFactory.setIgnoringElementContentWhitespace()
controla la creación de espacios en blanco. Utilice esto antes de crear un DocumentBuilder
.
dbfac.setIgnoringElementContentWhitespace(true);
Fui capaz de eliminar espacios en blanco / tabs / newlines de mi transformación con la siguiente propiedad:
transformer.setOutputProperty(OutputKeys.INDENT, "no");
Tú lo tenías establecido en sí. Estoy seguro de que esta pregunta es lo suficientemente antigua como para que ahora no importa; Pero si alguien se ejecuta en esto en el futuro, el establecimiento de la propiedad a no me salvó.