PDA

Просмотр полной версии : наличие элемента в XML


Doctor76
10.12.2009, 17:50
Всем добрый вечер!
Ситуация следующая: Есть такой ХМЛ:


<sprite>
<property name="x">10</property>
<property name="y">10</property>
<property name="type">dd_label</property>
<display>
<shape>
...............
</shape>
...............
</display>
</sprite>;


Который может содержать элемент с аттрибутом "clones"

<sprite>
<property name="x">10</property>
<property name="y">10</property>
<property name="type">dd_label</property>
<property name="clones">2</property>
<display>
<shape>
...............
</shape>
...............
</display>
</sprite>;


Как правильно определить, содежит ли ХМЛ элемент с данным аттрибутом?

подобный трейс чтото типа null не выводит:

trace("myXML[property].(@name == clones): "+ myXML["property"].(@name == "clones"));

//выводит -- myXML[property].(@name == clones):

Aldvin
10.12.2009, 18:06
Такая запись
myXML["property"].(@name == "clones")
возвращает XMLList, обращаться к элементам которого нужно через индекс.
myXML["property"].(@name == "clones")[0]

vitalFriend
10.12.2009, 18:10
Попробуй так:

trace( myXML.property.(@name == "clones"));//выдаст 2
trace( Boolean(myXML.property.(@name == "clones")));//выдаст true

Doctor76
10.12.2009, 18:23
подобная запись:

trace( Boolean(myXML.property.(@name == "clones")));//выдаст true

выводит true всегда, независимо, есть такой элемент или нет.

а вот это работает:

myXML["property"].(@name == "clones")[0]



если элемента нет -выдает undefined

Большое всем спасибо за помощь

Gaen
10.12.2009, 18:56
if(myXML["property"].(@name == "clones").length())...