Мне нужно получить номер узла, но у меня есть только LOG_ID. Как найти этот номер?Найти номер записи XML
<LOG>
<ENTRY LOG_ID="01042012"/>
<ENTRY LOG_ID="03052012"/>
<ENTRY LOG_ID="09052012"/>
</LOG>
Спасибо. Ули
обработкаМне нужно получить номер узла, но у меня есть только LOG_ID. Как найти этот номер?Найти номер записи XML
<LOG>
<ENTRY LOG_ID="01042012"/>
<ENTRY LOG_ID="03052012"/>
<ENTRY LOG_ID="09052012"/>
</LOG>
Спасибо. Ули
обработкаиспользования E4X, как описано here и getting started documentation:
var myXML:XML =
<LOG>
<ENTRY LOG_ID="01042012"/>
<ENTRY LOG_ID="03052012"/>
<ENTRY LOG_ID="09052012"/>
</LOG>
trace(myXML.ENTRY.(@LOG_ID==09052012).childIndex()); /* retrieve entire node */
Вы можете также сохранить ссылку на этот узел в качестве XML
объекта:
var index:int = myXML.ENTRY.(@LOG_ID==09052012).childIndex();
Примечание: В childindex
функцию (и некоторые другие) работают на отдельных узлах. Однако, если ваш пример ввода содержит несколько узлов с тем же значением атрибута, которое вы используете для извлечения, вы получите список узлов (т. Е. XMLList
) вместо одного узла. Теперь для того, чтобы выяснить показатели таких детей вам нужно будет сделать следующее:
for each (var selectedNode in myXML.ENTRY.(@LOG_ID==09052012))
trace(selectedNode.childIndex());
Вы всегда можете проверить, если ваш запрос E4X возвратил список с помощью следующей:
var candidates:XMLList = myXML.ENTRY.(@LOG_ID==09052012) as XMLList;
if (candidates != null) { // a list
// do something ...
}
Если я запустить код ** trace ** пуст. Думаю, номер должен подняться? – Uli
@Uli: Я поставил 'entry' вместо' ENTRY'. Можете ли вы попробовать с моим обновленным ответом? Убедитесь, что все, что вы положили в E4X после имени переменной myXML, совпадает с фактической записью/записями в вашем XML-файле. Также обратите внимание, что E4X обычно пропускает корневой узел (т. Е. 'LOG' в вашем случае). – dirkgently
Все еще не работает. (трассировка пуста) – Uli