Используйте AS3 для анализа атрибута узла XML с двоеточием
У меня есть следующий документ XML:
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
<head></head>
<body>
<div xml:lang="it">
<p begin="00:00:00" end="00:00:02" style="violet">first</p>
</div>
</body>
</tt>
Я загружаю содержимое в мой Flash-объект, используя AS3 успешно. Но как распечатать / отследить значение атрибута в <div xml:lang="it">
? Когда я пытаюсь код:
trace(myxml.children()[1].children()[0].@xml:lang);
Компилятор жалуется на синтаксическую ошибку, представленную двоеточием.
3 ответа
В вашем xml нет пространства имен 'xml'. Возможно, вы пропустили это. Должно быть что-то вроде этого:
<tt xmlns:xml="http://blabla.com" ... xml:lang="en">
Затем вам нужно объявить экземпляр пространства имен для доступа к атрибутам xml, теги для этого пространства имен:
var ns:Namespace = new Namespace("xml","http://blabla.com") ;
Затем вы можете использовать этот код для доступа к атрибуту:
trace(myxml.children()[1].children()[0].@ns::lang);
Возможно использовать:.attribute('xml:lang') instead of .@xml:lang
http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/XML.html()
Использование ::
,
.@xml::lang
http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e6c.html