我基本上與我的DOM對象與我想要的數據堅持,我試圖將其輸出到字符串。在這裏我在這裏使用解析我的XML文件中的代碼:Android的DOM對象字符串
public ORGRTools insertUserNameAndPassword(String userName, String password)
{
try {
DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
docBuilder = factory.newDocumentBuilder();
dom = docBuilder.parse (new File("/mnt/sdcard/Commands.xml"));
NodeList items = dom.getElementsByTagName("login");
for (int i = 0; i < items.getLength(); i++) {
Node item = items.item(i);
NodeList properties = item.getChildNodes();
for (int j = 0; j < properties.getLength(); j++) {
Node property = properties.item(j);
String name = property.getNodeName();
if (name.equalsIgnoreCase("userName")) {
property.getFirstChild().setNodeValue(userName);
}
if (name.equalsIgnoreCase("password")) {
property.getFirstChild().setNodeValue(password);
}
}
}
} catch (SAXException e) {
// TODO Auto-generated catch block
//invalid character in xml
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return this;
}
話雖這麼說,我有以下功能使用該成員變量DOM從上面的前面的代碼,試圖得到它的字符串表示:
public String serialize()
{
try
{
DOMSource domSource = new DOMSource(dom);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(domSource, result);
String retVal= writer.toString();
return retVal;
}
catch(TransformerException ex)
{
//exception here but does not print stack trace... weird
ex.printStackTrace();
return null;
}
}
但是,我收到以下異常(請參閱評論)。有沒有人有線索發生了什麼?什麼是轉變爲字符串失敗?我一直堅持了幾個小時,所以任何幫助都會很好。任何API級別都可以。
謝謝! - 編輯 - 這是我正在嘗試處理的結構。基本上,這個想法是將這些模型中的一個與.apk一起安裝,並讓這些模型與服務器進行通信。所以,我需要填寫用戶證書數據:
<commands>
<login>
<userName>itemstr</userName>
<password>itemstr</password>
</login>
<analyse>
<imageName>itemstr</imageName>
<imageHeight>itemnum</imageHeight>
<imageWidth>itemnum</imageWidth>
<recordID>itemstr</recordID>
</analyse>
<retrieve>
<record>itemnum</record>
</retrieve>
你嘗試添加在你的另一'抓block'捕捉其他異常,看看是否打印堆棧跟蹤? – iTurki 2012-03-16 02:35:38
嗨iturki,我添加了異常,但調試器仍然跳過它。任何其他想法? – roboto1986 2012-03-16 02:54:13
然後試試這個:在catch塊外面移動'null return'。我不習慣返回null。這可能是問題的原因。考慮返回一個空字符串或用戶定義的字符串。 – iTurki 2012-03-16 10:46:31