我现在正在开发一些XML和ExtendScript。我不确定为什么,当我运行以下脚本时,ESTK不会抛出错误:
var random_string = "asdsfjlkj";
try {
testXML = new XML(random_string);
} catch (err) {
$.writeln("There was an error creating an XML object:" + err);
}
我希望$.writeln
字符串显示在ESTK的控制台中,但它没有。相反,我得到Result: undefined
。根据Adobe的Javascript工具指南(第246页):
如果提供了有效的字符串,则返回封装XML代码的新XML对象。如果无法解析XML代码,则会引发JavaScript错误。 如果提供了现有对象并使用了新运算符,则返回该对象的副本;否则,返回对象本身。
我想我的问题是new XML()
方法实际会抛出错误是什么类型的字符串?
答案 0 :(得分:1)
语法x = new XML (y);
用于创建XML类型的新对象x
,其初始值为y
,其中y
必须形成有效的 XML。
来自ESTK帮助:
XML XML (text: string )
解析XML字符串。如果XML不正确,则会引发错误。
因此,以下都将失败:
Ziki&#39; <asdf
:&#34;创建XML对象时出错:SyntaxError:第1行中的XML错误 - 未关闭的令牌&#34;
<abc a='1>
:&#34; .. - 未结算的令牌&#34;
<abc a=1>
:&#34; .. - 格式不正确(令牌无效)&#34;
<123>
:&#34; .. - 格式不正确(令牌无效)&#34;
<abcd><b></abcd>
:&#34; .. - 标记不匹配&#34;
<?xml verson="1.0"?><abc>
:&#34; .. - 语法错误&#34; (此处verson
需要version
)
这些(每行是一个单独的输入字符串)都可以:
abcd>
<abcd>
<abcd><a> (this automatically gets expanded to <abcd><a/></abcd>)
<abc a="1">