Показать сообщение отдельно
  #1 (permalink)  
Старый 05.03.2015, 18:08
Новичок на форуме
Отправить личное сообщение для idib.js Посмотреть профиль Найти все сообщения от idib.js
 
Регистрация: 05.03.2015
Сообщений: 1

Парсинг xml со сложной структурой и зависимостью от содержания
здравствуйте форумчане
я совсем новичок могу сказать что знаю с/с++, java и другие языки для pc на jq только копировал уже готовые скрипты ну на сколько разобрался так что не ругайте
после клика должен от паристся xml
в xml структуре мы сначала заходим в start узнаем с чего можно начать
и потом с помощью великого рандом пыгаем как в примере в start_0
потом в start_1 или start_2 и так далее
походу мы достаем текст и добавляем его в #text_class
скрипт не работает можете помочь его оживить или порекомендовать как нибудь по другому это реализовать

заранее спасибо

вот xml
<?xml version="1.0" encoding="utf-8" ?>
<page>
	<start>
		<ligament>
			start_0
		</ligament>
	</start>
	<start_0>
		<ligament>
			start_1
			start_2
		</ligament>
		<text>
			сначала это
		</text>
	</start_0>
	<start_1>
		<ligament>
			Null
		</ligament>
		<text>
			только началось и законцилость
		</text>
		</body>
	</start_1>
	<start_2>
		<ligament>
			start_3
			start_4
		</ligament>
		<text>
			а потом вариант 1 @NAME@ 
		</text>
	</start_2>
	<start_3>
		<ligament>
			start_4
		</ligament>
		<text>
			а можетбыть и 2
		</text>
	</start_3>
	<start_4>
		<ligament>
			Null
		</ligament>
		<text>
			а потом вариант 3
		</text>
	</start_4>
</page>

вот js
function lala(){ //функция запускается по клику 
//..................
        generet();
	xmlParser();
}

function generet()
{
	$.ajax({
        type: "GET",
        url: "xml/text.xml",
        dataType: "xml",
        success: xmlParser
    });
}

function xmlParser(xml) {
    $('#load').fadeOut();
	var next;
	$(xml).find("start").each(function () {
		next = next_text($(this).find("ligament").text());
	});
	while(next != "Null"){
		$("#text_class").append(textt($(xml).find(next).find("text").text()));
		next = next_text($(xml).find(next).find("ligament").text());
		$("next").fadeIn(1000);
	}
	
}

function next_text(input){
	arr = input.split("\n ");
	return arr[Math.floor(Math.random()*arr.length)];
}

function textt(input)
{
	return replace(new RegExp("@NAME@",'g'),name);
}

Последний раз редактировалось idib.js, 05.03.2015 в 18:11.
Ответить с цитированием