Guest User

Untitled

a guest
May 22nd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. <label><input type="file" style="display: none;" id="fileChooser">Ler XML</label>
  2.  
  3. var fileChooser = document.getElementById('fileChooser');
  4.  
  5. function parseTextAsXml(text) {
  6. "use strict";
  7. var parser = new DOMParser(),
  8. xmlDom = parser.parseFromString(text, "text/xml");
  9.  
  10. populateData(document.getElementById("xmlForm"), xmlDom);
  11. }
  12.  
  13. function waitForTextReadComplete(reader) {
  14. "use strict";
  15. reader.onloadend = function(event) {
  16. var text = event.target.result;
  17. parseTextAsXml(text);
  18. };
  19. }
  20.  
  21. function handleFileSelection() {
  22. "use strict";
  23. var file = fileChooser.files[0];
  24. var reader = new FileReader();
  25.  
  26. waitForTextReadComplete(reader);
  27. reader.readAsText(file);
  28. }
  29.  
  30. function populateData(form, xmlDoc){
  31. "use strict";
  32. var root = xmlDoc.documentElement;
  33. // get all the customMetaData nodes
  34. var metadataNodes = root.querySelectorAll('customMetaData');
  35. // create an object to store the key/values
  36. var map = {};
  37. // iterate over the nodes and get the key and value to add to the map
  38. metadataNodes.forEach(function(metadata) {
  39. var key = metadata.querySelector('key').textContent;
  40. var value = metadata.querySelector('value').textContent;
  41. map[key] = value;
  42. });
  43. // interate over your form and find the value in the map for that input's name
  44. for (var i = 0; i <form.elements.length; i++) {
  45. var input = form.elements[i];
  46. if(input.name){
  47. input.value = map[input.name] || '';
  48. }
  49. }
  50. }
  51.  
  52. fileChooser.addEventListener('change', handleFileSelection, false);
Add Comment
Please, Sign In to add comment