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

Save xslt form in mysql using zend 1.12

我想将 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 字符串作为输入参数。它还采用可选的布尔输入参数来指示转换逻辑在转换过程中忽略或不忽略 XML 属性。

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

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

试一试,但再次检查你的 XML 语法