2010-11-25 115 views
6

我在我的android应用程序中使用Java创建了一个XML文档。我必须在我的应用程序中调用Web服务,并将该XML作为参数传递给此应用程序。但我的问题是在XML中的每个标签之间创建了一个空白区域。如何删除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(); 

的XML是:

<subscriber> <UserName>miya</UserName> <Password>today</Password> </subscriber> 

请给如何删除UserNamePassword标签之间的空白空间的解决方案。

+0

请出示XML – Mikpa 2010-11-25 07:17:39

+0

宫今天 Miya 2010-11-25 08:32:04

+0

它看起来像你喂养你的XML文档作为输入的XSLT转换。处理XSLT中仅限空白的文本节点有几种方法。请重新发布并发布您的样式表,以便我们为您提供帮助。 – 2010-11-25 16:24:07

回答

12

当然,这取决于您的XML本身,但您可以尝试正则表达式。

作为一个例子:

yourXmlAsString.replaceAll(">\\s*<", "><"); 

将消除每个XML元素之间的所有空格。

4

我使用下面的属性是能够从我的转型删除空格/制表符/换行符。我相信这个问题已经够老了,现在也没关系;但如果有人在将来遇到这种情况,将该物业设置为救了我。