为什么ExtendScript在无效的XML字符串上抛出错误?

时间:2016-02-01 12:12:31

标签: xml extendscript

我现在正在开发一些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()方法实际会抛出错误是什么类型的字符串?

1 个答案:

答案 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">