Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.04.2014, 14:42
Новичок на форуме
Отправить личное сообщение для Blacksmouker Посмотреть профиль Найти все сообщения от Blacksmouker
 
Регистрация: 08.04.2014
Сообщений: 5

Метод XML.load() для файлового массива
Добрый день!

Есть zip-архив. Архив содержит массив файлов xml. Файлы маленькие от 3 до 30 кб каждый, но их много - от десятка, до сотни за раз (точное количество заранее неизвестно). Каждый имеет наименование 7-ми значный цифровой код.
Необходимо подтянуть данные из этих XML и выгрузить таблицей в HTML.

Напрашивался парсер на php, но сервер клиента не поддерживает php - там все реализовано на .NET
От Xml в данном случае тоже не уйти - данные приходят именно в этом формате.

Т.е. остается отработать массив на месте без обращения к серверу. Через Javascript.

Часть с разархивированием массива пока пропустил, поэтому принял за данность что массив уже распакован (хотя может проще сначала его грузить и там разбирать).

Нашел метод load, который единственный умеет работать с файлами локально.
Один файл он у меня прогружает нормально.

Затык происходит, если попытаться загрузить несколько файлов.
Вместо четкого имени я завожу регулярное выражение, а результат отработки функции пытаюсь вызвать в цикле, чтобы он вывел обработанные файлики в табличку.

Знатоки подсказали, что регулярными выражениями решить проблему не получится. Возможно кто-то сталкивался с подобными задачами - и подскажет решение. Заранее благодарен.
<html>
	<head>
		<meta charset="utf-8"/>
	</head>
	<body>
	<script type="text/javascript"> 
		function loadXMLDoc(dname) 
		{
			try
  			{
  			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");	
			}
			catch(e)	
			{
  				try 
    				{
			xmlDoc=document.implementation.createDocument("","",null);
    				}
  				catch(e) {alert(e.message)}
  			}
			try 
  			{xmlDoc
 				xmlDoc.async=false;
  				xmlDoc.load(dname);
  				return(xmlDoc);
  			}
			catch(e) {alert(e.message)}
			return(null);
		}
		
		var file_name = /\d{7}.xml/g;
		xmlDoc=loadXMLDoc(file_name);
		
		
		document.write('<table class="warning" border="2px" bgcolor="silver">');
			document.write('<tr align="center" bgcolor="gray">');
				document.write('<td>Дата события</td>');
				document.write('<td>Полное наименование</td>');
				document.write('<td>Заголовок</td>');
				
			
			document.write('</tr>');
			
			
			for (i=0; i<xmlDoc.length; i++){
			
			document.write('<tr>');
				
				
				var x=xmlDoc.getElementsByTagName("EVENT_DATE");
				var y=xmlDoc.getElementsByTagName("FULL_NAME_RUS");
				var z=xmlDoc.getElementsByTagName("EVENT_HEADER");

			
				document.write('<td>' + x[i].childNodes[0].nodeValue + '</td>'); 
				document.write('<td>' + y[i].childNodes[0].nodeValue + '</td>');
				document.write('<td>' + z[i].childNodes[0].nodeValue + '</td>');
			
			document.write('<tr>');
			
			}
		document.write('</table>');
  		
	</script>
	</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 09.04.2014, 15:40
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Цитата:
Напрашивался парсер на php, но сервер клиента не поддерживает php - там все реализовано на .NET
В чем проблема написать парсер на .NET ?

Цитата:
Нашел метод load, который единственный умеет работать с файлами локально.
Накой хрен работать с файлами локально ? Разве это не веб приложение ?

Решение для веб приложения вменяемых только два.
1е самое нормальное решить проблему на сервере используя .net.
2е разобрать zip на стороне клиента использую какую нибудь либу для работы с zip файлами. К примеру https://github.com/Stuk/jszip

Кстатии IIS должен PHP поддерживать.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 09.04.2014 в 15:50.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
Добавить свой метод к элементу alekciy Events/DOM/Window 6 16.02.2009 19:29