AS3 XML-объект не выдает исключение, если даны неверные данные? - PullRequest
3 голосов
/ 24 февраля 2011

Я мрачно помню, что класс XML в AS3 выдает исключение, если вы попытаетесь передать ему данные в его конструкторе, который не является допустимой строкой XML. Но теперь у меня есть случай, когда XML с радостью принимает все виды данных, независимо от того, является ли это действительным XML или нет ...

var xml:XML;
try
{
    xml = new XML("Some bogus string content.");
    _valid = true;
}
catch (err:Error)
{
    _valid = false;
}

... я что-то упустил ??

Обновление: Qname почему-то имеет значение null, но почему-то это не так, смотрите здесь:

var qname:QName = xml.name();
if (!qname.localName)
{
    _valid = false;
}

... выдает исключение. Обвиулси qname равно нулю! Но ...

var qname:QName = xml.name();
if (!qname || !qname.localName)
{
    _valid = false;
}

... не выдает никаких исключений. Кажется, qname не равно нулю. WTH?

Ответы [ 2 ]

2 голосов
/ 24 февраля 2011

Ваш пример должен дать объект XML без имени и с nodeKind, равным «text».Вот как текстовые узлы представлены в XML.В дополнение к try / catch вы можете проверить имя ().

2 голосов
/ 24 февраля 2011

Конструктор класса XML преобразует входное значение в XML с помощью функции верхнего уровня XML ().А функция верхнего уровня XML () преобразует строку в представление XML.Он может конвертировать другие типы параметров.Проверьте XML-конструктор и Функция верхнего уровня XML () руководство для получения подробной информации о том, что преобразуется в XML, а что вызывает исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...