5.4 Загрузка данных в форму из XML

Для загрузки данных из документа XML в форму ввода необходимо использовать команду setIframesContent, которая позволяет загрузить данные из структурированных данных XML в форму ввода. Например, команда может быть использована для редактирования ранее сформированных данных, которые хранятся в виде XML в карточке ранее созданного документа-черновика.

Команда: setIframesContent

Действие:

Загружает данные из строки с заполненной XML-структурой документа в форму редактирования. После выполнения команды в форме редактирования автоматически устанавливается форма необходимого вида документа и заполняется данными из XML.

Параметры:

  • data (объект): {
    • xml (строка)};

Требования к содержимому строки XML:
Данные документа в структуре XML могут быть заполнены не полностью, если ранее ввод документа не был завершен. Загрузка данных выполняется там, где это возможно, исходя из заполненных элементов и атрибутов.

Пример реализации в JavaScript:

<script>
    //функция, которая выполняется при нажатии кнопки «Загрузить в форму из файла»
    function setDigitalXML() {
        //Получаем файл в переменную file
        let file = document.querySelector('#file').files[0];
        var txtXML = '';
        //Создаем объект FileReader для считывания файла
        var reader = new FileReader();
        //При успешном чтении файла выполняем функцию
        reader.onload = function(evt) {
            // Присваиваем в переменную txtXML содержимое файла XML
            txtXML = evt.target.result;
            //Получение открытого окна редактора цифровых документов по id=”editor”
            let editorWindow = document.querySelector('#editor').contentWindow;
            // Отправка команды в открытое окно редактора: setIframesContent
            // Параметры: data.xml = строка содержимого XML
            editorWindow.postMessage({
                system_id: 'GosedoPortal',
                data: {
                    action: 'setIframesContent',
                    data: { xml: txtXML}
                }
            },
            '*');
        }
        // считываем файл
        reader.readAsText(file);
    }
</script>
<!-- фрейм с подключенной формой редактирования данных Портала ГосЭДО-->
<iframe width="1000px" height="700px" id="editor" src="http://10.77.142.21:84/#/constructor/selector/?theme=light">
<!--поле выбора файла XML (digital.xml)-->
<input id="file" type="file">
<!-- кнопка «Загрузить в форму из файла»-->
<button onclick="setDigitalXML()"> Загрузить в форму из файла</button>

С выполнением демонстрационного примера по описанной функции можно ознакомиться в разделе 4.4 Демонстрация загрузки данных из файла XML в редактор.

Последнее изменение: Wednesday, 26 June 2024, 12:51