Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <label><input type="file" style="display: none;" id="fileChooser">Ler XML</label>
- var fileChooser = document.getElementById('fileChooser');
- function parseTextAsXml(text) {
- "use strict";
- var parser = new DOMParser(),
- xmlDom = parser.parseFromString(text, "text/xml");
- populateData(document.getElementById("xmlForm"), xmlDom);
- }
- function waitForTextReadComplete(reader) {
- "use strict";
- reader.onloadend = function(event) {
- var text = event.target.result;
- parseTextAsXml(text);
- };
- }
- function handleFileSelection() {
- "use strict";
- var file = fileChooser.files[0];
- var reader = new FileReader();
- waitForTextReadComplete(reader);
- reader.readAsText(file);
- }
- function populateData(form, xmlDoc){
- "use strict";
- var root = xmlDoc.documentElement;
- // get all the customMetaData nodes
- var metadataNodes = root.querySelectorAll('customMetaData');
- // create an object to store the key/values
- var map = {};
- // iterate over the nodes and get the key and value to add to the map
- metadataNodes.forEach(function(metadata) {
- var key = metadata.querySelector('key').textContent;
- var value = metadata.querySelector('value').textContent;
- map[key] = value;
- });
- // interate over your form and find the value in the map for that input's name
- for (var i = 0; i <form.elements.length; i++) {
- var input = form.elements[i];
- if(input.name){
- input.value = map[input.name] || '';
- }
- }
- }
- fileChooser.addEventListener('change', handleFileSelection, false);
Add Comment
Please, Sign In to add comment