2010-01-17 2 views
1

Мне нужно знать, как я могу проанализировать переменный путь в Flex 3 & e4X. Например, у меня есть две строки XML, где единственным элементом является одно имя.Как создать переменные пути с помощью e4X?

<NameOfRoot> 
    <NameOfChild1> 
     <data>1</data> 
    </NameOfChild1> 
</NameOfRoot> 

<NameOfRoot> 
    <NameOfChild2> 
     <data>2</data> 
    </NameOfChild2> 
</NameOfRoot> 

В настоящее время я доступа к переменным, как это:

var data1:String = NameOfRoot.*::NameOfChild1.*::data; 
var data2:String = NameOfRoot.*::NameOfChild2.*::data; 

Я предпочел бы сделать эту задачу более абстрактные, так что если «NameOfChild3» вводится мне не нужно обновлять код. Например:

var data:String = NameOfRoot.*::{variable}.*::data; 

У кого-нибудь есть идеи, как это можно сделать?

ответ

0

Похоже на ". *." работа будет работать. Интересно, если это самый простой способ справиться с этой проблемой.

var data:String = NameOfRoot.*.*::data; 
1

Используйте child свойства (LiveDocs пример here):

var tagName:String = "NameOfChild1"; 
var data:String = NameOfRoot.child(tagName).data; 

Это без каких-либо пространства имен - не уверен, является ли это необходимо в вашем случае, но я предполагаю, что вы бы добавить некоторые *:: «ю.ш. ?

1

это также работает:

var data:String = NameOfRoot..data; 

, но если у вас есть более чем на 1 узел данных вам придется сортировать некоторый материал.

Смежные вопросы