台灣最大程式設計社群網站
線上人數
1865
 
會員總數:246738
討論主題:190152
歡迎您免費加入會員
討論區列表 >> Android APP 開發 >> XML剖析: 未預期的輸入結束?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
XML剖析: 未預期的輸入結束?
價值 : 50 QP  點閱數:2285 回應數:6
樓主

荔枝
中級專家
2677 787
10038 2628
發送站內信

捐贈 VP 給 荔枝
當我傳資料到WebService中,要寫入到資料表欄位為XML型態,資料庫為SQL Server 2005時,總會出現以下訊息:

XML剖析: 未預期的輸入結束

我去查Google查了好久,說是可能有以下原因:

一:XML缺了某結束標籤,例如有<abc>卻沒有</abc>

二:XML資料過多,但是有解法如下:
http://www.mujstart.cz/blog/2011/09/long-string-in-xml-variable-causes-error-unexpected-end-of-input/

但,如果是第二種情況,那我要如何在Android Java中使用轉換的方式把所有串接的String改為NVARCHAR呢?

還是有其它解法呢?.........因為我檢查過了我的XML資料絕對不會是情況一的問題!

請教大家,謝謝

本篇文章發表於2013-09-11 16:53
1樓
作者回應

荔枝
捐贈 VP 給 荔枝 檢舉此回應
對了,補充一點:

我也試過了在WebService端,要寫入至XML欄位的參數型態直接設為NVARCHAR,如下:

cmd.Parameters["@xxx"].SqlDbType = SqlDbType.NVarChar;

但是這樣也無效,一樣出現相同的錯誤訊息!
本篇文章回覆於2013-09-11 16:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

荔枝
捐贈 VP 給 荔枝 檢舉此回應
實驗了好久,有了重大的發現!

問題在於「時間格式」(HH:mm),

例如:在我的XML資料中,有一Element像這樣:

<abc
........................
......................
.........................
xTime="12:34"/>

就會出錯(錯誤訊息:未預期的輸入結束)

但若我改成這樣:
<abc
........................
......................
.........................
xTime="1234"/>

就會成功了!!!

這是怎麼回事?.........難道XML不允許有「HH:mm」這種格式嗎???

請教大家,謝謝!
本篇文章回覆於2013-09-11 20:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

麥兜照日光
捐贈 VP 給 麥兜照日光 檢舉此回應
Hi~大大你好
回覆#2
XML是可以「HH:mm」這種格式的.不過type都是使用timestamp.也可以自訂格式
請參考:http://www.w3schools.com/schema/schema_dtypes_date.asp

另外提供參考看看
在webservice中把xml 寫入sql DB
http://wenku.baidu.com/view/52ec81d1b9f3f90f76c61bf5.html

以上!
本篇文章回覆於2013-09-18 16:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

荔枝
捐贈 VP 給 荔枝 檢舉此回應
謝謝麥兜照日光大大,但......我還是不太知道要如何用上,
例如像以下程式碼:

其中的"%02d:%02d"就是所謂的時間格式了,那,只針對「BTime」這個屬性,我要如何讓它能寫入XML型態的資料行中呢?

對了,我必須說明一點!

我之前都是使用......C#所寫的:

一:Windows Mobile 6.5

二:ASP.NET的WebForm網站

這兩者,遇到以上這種情況時,都是可以順利寫入成功的!!!!!!

那為什麼,用Eclipse的Java所寫的Android程式碼,就不行呢?????

再次請教,謝謝

本篇文章回覆於2013-09-22 22:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

麥兜照日光
捐贈 VP 給 麥兜照日光 檢舉此回應
Hi~大大你好
通常時間我會利用SimpleDateFormat轉換,不過如大大頂樓有說的在Andriod上XML檔案限制
小弟通常都是直接傳值給webservice

提供參考看看(我在Andriod上傳時間給webservice <C#寫的>,webservice裡在把值寫到DB )
Android 上

以下為WebService端


以上!
本篇文章回覆於2013-09-23 17:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

荔枝
捐贈 VP 給 荔枝 檢舉此回應
這個主題被我拖了太久,真是對麥兜照日光大大感到抱歉,

常常因為其它事情太多,導致原問題又沒時間去研究,就又不了了之,

所以我決定,最起碼要先結案掉,不能讓大家覺得回了我又像石沈大海不知去向(就像中了段譽的"北冥神功"一樣)!!

大大的回應,有空我一定會一一消化,先在此結案,謝謝麥兜照日光大大!
本篇文章回覆於2014-06-01 18:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.