Render.ru

нужен XML Parser

McST

Знаток
Рейтинг
28
#1
нужен несложный парсер для XML'ок
кто-нибудь знает где и как его найти для макса желательно с описанием?
 

Chebu

Знаток
Рейтинг
59
#2
именно на maxscript едва ли есть готовый, но можно прикрутить activex компонент
 

Chebu

Знаток
Рейтинг
59
#4
пример:

Код:
xml_doc = dotNetObject "System.Xml.XmlDocument"
xml_doc.load("c:/1.xml")

--берём первый элемент:
first_node = xml_doc.firstChild()

--находим в его детях элемент с именем "my_element"
elem = first_node.Item("my_element")

--получаем значение аттрибута с именем "my_attribute"
val = ((elem.attributes).ItemOf["my_attribute"]).value

--берём следующий элемент того же уровня, что и elem:
elem2 = elem.NextSibling()

более подробно - в MSDN
 

McST

Знаток
Рейтинг
28
#5
ну я примерно так и пробовал сначала и вот сейчас тоже попробовал:

на xml_doc.load("c:/1.xml") спотыкается (1.xml есть!) выдает undefined

не понятно, то ли нужно как-то по-особенному писать xml

даже на простом примере:
<root>
</root>
 

Chebu

Знаток
Рейтинг
59
#6
Он не спотыкается, undefined в данном случае означает, что открыл :)

Простой пример:

Код:
fn GetAttribute root attr_path = 
(
	element = root
	path_nodes = filterstring attr_path "/"
	attr_name = path_nodes[path_nodes.count]
	deleteItem path_nodes path_nodes.count
	for p in path_nodes do
	(
		if(element != undefined) do element = element.Item(p)
	)
	if(element != undefined) do element.attributes.itemof[attr_name]
)

xmlDoc = dotNetObject "System.Xml.XmlDocument" 
xmlDoc.Load("c:/1.xml")
attr = GetAttribute xmlDoc "Root\MyElement\MyAttribute"
print attr.value
файл c:/1.xml:

Код:
<Root><MyElement MyAttribute="MyValue"></MyElement></Root>
 

Chebu

Знаток
Рейтинг
59
#8
не за что...

в примере ошибся:
Код:
attr = GetAttribute xmlDoc "Root[b]/[/b]MyElement[b]/[/b]MyAttribute"
 
Сверху