我想在Sqlite数据库中插入xml数据。
例如:
UPDATE OBJ_ART SET TITLE = '<?xml version='1.0' encoding='UTF-8'?><root available-locales="en_US,fr_FR," default-locale="en_US"><Title language-id="en_US">Distribution Sing EN</Title><Title language-id="fr_FR">Distribution Bâtiment</Title></root>', CONTENT = ‘ABCD’, STRUCT_ID = 12709, DISPLAY_DATE = 1422890 WHERE ART_ID = 12716
你能不能指导我如何将xml解析器数据存储在sqlite数据库中,
答案 0 :(得分:0)
使用SQLite时,通常应该避免使用stringWithFormat
构建SQL语句,而是使用SQL,如:
UPDATE OBJ_ART SET TITLE = ?, CONTENT = ?, STRUCT_ID = ?, DISPLAY_DATE = ? WHERE ART_ID = ?
然后,可以使用SQLite函数sqlite3_bind_text
, sqlite3_bind_int
等将值绑定到SQL中的?
占位符。这将优雅地处理恰好在其中包含引号的值。
因此,调用sqlite3_prepare_v2
来准备SQL语句,然后为每个列调用sqlite3_bind_xxx
,然后sqlite3_step
执行SQL,完成后调用{{1}释放与语句关联的内存。
更简单,使用像FMDB这样的库,这大大简化了这个过程。
答案 1 :(得分:0)
如果要在Sqlite中插入或更新XML数据。你只需遵循一些规则。
我的例子:
UPDATE OBJ_ART SET TITLE ='<?xml version='1.0' encoding='UTF-8'?><root available-locales="en_US,fr_FR," default-locale="en_US"><Title language-id="en_US">Distribution Sing EN</Title><Title language-id="fr_FR">Distribution Bâtiment</Title></root>', CONTENT = ‘ABCD’, STRUCT_ID = 12709, DISPLAY_DATE = 1422890 WHERE ART_ID = 12716
这很简单。您只需将XML标记替换为HTML实体。
HTML entities:
1. < ----- replace to ---- <
2. > ----- replace to ---- >
3. " ----- replace to ---- "
4. ' ----- replace to ---- '
我希望它能奏效。在发送SOAP动作的每个地方,你也必须做同样的事情。