php - 使用 zend 1.12 在 mysql 中保存 xslt 表单

标签 php mysql xml xslt zend-framework

我想将xml文档保存在mysql数据库中,如下所示:

 $_docId= $this->getRequest()->getParam('docId', 0);
$_slmData = '<SLM_form_v2 id="slmform"><group_1_1><section1_1/><name1_1>sdfds</name1_1>
enter code here<localname1_2/><selectcountry_1_3>Algeria</selectcountry_1_3></group_1_1>
enter code here<group_1_2><main_doc/><name_doc1>gdgf gfh f</name_doc1><sex_doc1>Male
</sex_doc1><name_institution_1>fsdgdfg</name_institution_1><address_institution_1>gdgfdgfd
</address_institution_1>....';

            $_docMapper = new Model_Mapper_XMLDoc();
            $_docModel = new Model_XMLDoc();

            $_docModel ->doc_data = Zend_Json::encode($_docData);

            if ($_docId != 0) {
                $_docModel->id = $_docId;
                $_docMapper->update($_docModel->toArray(), 'id = ' . $_docId);
                $_action = 'update';
            } else {
                $_docMapper->insert($_docModel->toArray());
                $_lastId = $_docMapper->getAdapter()->lastInsertId(); //gets the id of the last inserted record
                $_action = 'add';
            }
$this->_helper->json->sendJson(array(
                'message' => 'success',
                'id' => $_lastId,
                'action' => $_action
            ));

它存储在数据库中:

INSERT INTO crpcoreix.tbl_xml_doc (slm_data, web_gis_fk) VALUES ('"<SLM_form_v2 id=\\"slmform\\"><group_1_1><section1_1\\/><name1_1>sdfds<\\/name1_1><localname1_2\\/><selectcountry_1_3>Algeria<\\/selectcountry_1_3><\\/group_1_1><group_1_2><main_doc\\/><name_doc1>gdgf gfh f<\\/name_doc1><sex_doc1>Male<\\/sex_doc1><name_institution_1>fsdgdfg<\\/name_institution_1><address_institution_1>gdgfdgfd gdgf<\\/address_institution_1>...', null);

当我尝试从数据库中读取数据并显示编码的 xml 标签时,输出缺少第一部分 ("<SLM_form_v2 id=\\"slmform\\"><group_1_1><section1_1\\/><name1_1>...)第一部分

Array
(
    [id] => 1
    [xml_data] => "sdfds<\/name1_1>Algeria<\/selectcountry_1_3>...'
    [web_gis_fk] => 
)

请指教如何修复以及是否有更好的方法将 xml 文档存储在数据库中。

谢谢,

最佳答案

首先您需要仔细检查给定的 xml 语法,无论其是否正确。

Zend_Json includes a static function called Zend_Json::fromXml(). so you would better manage to use it instead of Zend_Json::encode when you encode XML

此函数将从给定的 XML 输入生成 JSON。

此函数将任意 XML 字符串作为输入参数。它还采用可选的 bool 输入参数来指示转换逻辑在转换过程中忽略或不忽略 XML 属性。

如果未给出此可选输入参数,则默认行为是忽略 XML 属性。此函数调用如下所示:

$jsonContents = Zend_Json::fromXml($xmlStringContents, true);

尝试一下,但再次检查您的 XML 语法

关于php - 使用 zend 1.12 在 mysql 中保存 xslt 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41101555/

相关文章:

php - CakePHP 查询返回两行而不是一行

php - 多行单引号字符串

PHP/ Paypal : How to set receiver email?

mysql - 在 drupal 中使用枚举

c# - 如何在 C# 中将 XLS 文档转换为 XML?

php - 如果用户已经登录 facebook,FB 登录回调函数不响应

php - 优化 Codeigniter 中的表

php - wordpress Wp_query 和日期字段的元查询问题

PHP在XSLT1中注册了函数,如何用PHP返回XML片段?

java - Netbeans Java项目中的构建错误