powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XMLDOM И java script - помогите с деревом!
7 сообщений из 7, страница 1 из 1
XMLDOM И java script - помогите с деревом!
    #33572860
maksi_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте !
не могу разобраться как получить дочерний объект в таком случае:
Код:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<begin>
<type1>
	<doc>
		<name>name 1</name>
		<description>description 1</description>
	</doc>
	<doc>
		<name>name 2</name>
		<description>description 2</description>
	</doc>
</type1>
<type2>
	<doc>
		<name>name 1 </name>
		<description>description 1</description>
	</doc>
	<doc>
		<name>name 2</name>
		<description>description 2</description>
	</doc>
</type2>
</begin>

Обрабатываю все это, например так:
Код:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
function createTable()
{
	var x = xmlDoc.getElementsByTagName('doc');
	 <!--x = x.firstchild;
    document.write(x.length);
	var newEl = document.createElement('TABLE');
	newEl.setAttribute('cellPadding',5);
	var tmp = document.createElement('TBODY');
	newEl.appendChild(tmp);
	var row = document.createElement('TR');
<!--Заголовок таблицы -->
	for (j=0;j<x[0].childNodes.length;j++)
	{
		if (x[0].childNodes[j].nodeType != 1) continue;
		var container = document.createElement('TH');
		var theData = document.createTextNode(x[0].childNodes[j].nodeName);
		container.appendChild(theData);
		row.appendChild(container);
	}
	tmp.appendChild(row);

<!-- ------------------------------------------------------------- -->
<!--Содержание таблицы -->
	for (i=0;i<x.length;i++)
	{
		var row = document.createElement('TR');
		for (j=0;j<x .childNodes.length;j++)
		{
			if (x.childNodes[j].nodeType != 1) continue;
			var container = document.createElement('TD');
			var theData = document.createTextNode(x.childNodes[j].firstChild.nodeValue);
			container.appendChild(theData);
			row.appendChild(container);
		}
		tmp.appendChild(row);
	}
	document.getElementById('writeroot').appendChild(newEl);
}

но мне нужно вывести ТОЛЬКО данные всех doc из раздела TYPE1...
бился с firstchild, lastchild - но видимо еще не до конца разобрался!
заранее благодарен за помощь!
...
Рейтинг: 0 / 0
XMLDOM И java script - помогите с деревом!
    #33574844
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x = xmlDoc.getElementsByTagName('type1').childNodes;
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
XMLDOM И java script - помогите с деревом!
    #33575239
Yura Nickolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы все-таки использовал XPath-выражения, как-то они побогаче будут
Например так:
Код: plaintext
var x = xmlDoc.documentElement.selectNodes("./type1/doc")
Приведенный фрагмент верен для IE, как точно это писать в Mozilla etc. - легко ищется :)
...
Рейтинг: 0 / 0
XMLDOM И java script - помогите с деревом!
    #33575243
Yura Nickolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maXmox = xmlDoc.getElementsByTagName('type1').childNodes;
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
Угу, только еще надо разбираться, нет ли у <type1> детишек кроме <doc>
...
Рейтинг: 0 / 0
XMLDOM И java script - помогите с деревом!
    #33577213
maksi_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное спасибо !
XPath отлично справляется, осталось разобраться как формировать ссылки в формируемой таблице ..
...
Рейтинг: 0 / 0
XMLDOM И java script - помогите с деревом!
    #33577412
maksi_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема со ссылками в следующем, такой код (применительно к странице в первом посте) :
Код: plaintext
1.
var theData = document.createTextNode("<A HREF=" + x.childNodes[j].firstChild.nodeValue +  '">открыть файл :  </A> "');
выводит в таблицу <A HREF=" + x [i].childNodes[j].firstChild.nodeValue + '">открыть файл : </A> т.е. как текстовый элемент, а не как ссылку. Подскажите как побороть это ?
...
Рейтинг: 0 / 0
XMLDOM И java script - помогите с деревом!
    #33577865
Yura Nickolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maksi_mпроблема со ссылками в следующем, такой код (применительно к странице в первом посте) :
Код: plaintext
1.
var theData = document.createTextNode("<A HREF=" + x.childNodes[j].firstChild.nodeValue +  '">открыть файл :  </A> "');
выводит в таблицу <A HREF=" + x [i].childNodes[j].firstChild.nodeValue + '">открыть файл : </A> т.е. как текстовый элемент, а не как ссылку. Подскажите как побороть это ?
Если надо вывести ссылку, то ссылку и надо создавать в DOM, не так ли? ;))
А значение текстовых узлов xml-документа лучше выводить не так. Надо либо бежать по всем детишкам, проверять тип и отбирать только TEXT, либо (опять же для IE, не помню как в других) использовать свойство text элемента, т.е. примерно вот так:
Код: plaintext
x[i].childNodes[j].text
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XMLDOM И java script - помогите с деревом!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]