2011-03-28 63 views
3

我正在從webservice獲取值。我的一些價值觀帶有單引號。像這個樣本的sqlite不支持單引號。所以我用雙引號替換它們。雖然我然後從數據庫檢索值,我無法解析的價值。我解析器異常沒有完好形成。任何人都可以告訴我如何做到這一點?android中的sqlite中的單引號

這是我的代碼替換單引號雙引號

   stockservicevalue=stockservicevalue.replaceAll("'", "\""); 

這是從數據庫

String sql = "SELECT * FROM MyQuest;"; 

日誌我的檢索值:

03-28 19:02:36.309: WARN/System.err(344): org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 50437: not well-formed (invalid token) 
03-28 19:02:36.321: WARN/System.err(344):  at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:492) 
03-28 19:02:36.330: WARN/System.err(344):  at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:477) 
03-28 19:02:36.340: WARN/System.err(344):  at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:317) 
03-28 19:02:36.380: WARN/System.err(344):  at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:273) 
03-28 19:02:36.389: WARN/System.err(344):  at com.inquest.SaxPortfolioDocument.getEventsFromAnXML(SaxPortfolioDocument.java:13) 
03-28 19:02:36.411: WARN/System.err(344):  at com.inquest.PortfolioActivity$PortFolioTask.doInBackground(PortfolioActivity.java:171) 
03-28 19:02:36.420: WARN/System.err(344):  at com.inquest.PortfolioActivity$PortFolioTask.doInBackground(PortfolioActivity.java:1) 
03-28 19:02:36.430: WARN/System.err(344):  at android.os.AsyncTask$2.call(AsyncTask.java:185) 
03-28 19:02:36.430: WARN/System.err(344):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
03-28 19:02:36.440: WARN/System.err(344):  at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
03-28 19:02:36.479: WARN/System.err(344):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 
03-28 19:02:36.500: WARN/System.err(344):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 
03-28 19:02:36.510: WARN/System.err(344):  at java.lang.Thread.run(Thread.java:1096) 
03-28 19:02:36.840: WARN/InputManagerService(58): Window already focused, ignoring focus gain of: [email protected] 

謝謝

+0

請示例。 – 2011-03-28 14:44:55

回答

8
stockservicevalue=stockservicevalue.replaceAll("'", "\''"); 
0

我認爲正確的格式將stockservicevalue=stockservicevalue.replaceAll("\'", "\"");

1

我們可以利用Android的DatabaseUtils類。

stockservicevalue = DatabaseUtils.sqlEscapeString(stockservicevalue);

-1

如何使用SQLite Java插入單引號。這個對我有用。

String str = "'Hello"; 

str = str.replace("'","\\'"); 
相關問題