正在使用 Extendscript for After Effects 从 Web 服务器获取 xml 内容
Fetching xml content from web server with Extendscript for After Effects
我正在尝试为 After Effects 脚本获取托管在 Web 服务器上的 XML 文件。
谁能解释一下为什么这种方法似乎不起作用?
//var xml_path = "/c/test.xml";
var xml_path = "http://transfer.proshopeurope.com/TEMP/test.xml";
function getXML(){
var xml_file = new File(this.xml_path);
if(xml_file.open("r")){
var xml_string = xml_file.read();
var xml = new XML(xml_string);
xml_file.close();
return xml;
}else{
return false;
}
}
$.writeln(getXML());
顺便说一句,如果我使用在顶部注释掉的本地路径,它工作正常。
你不能用'new File'代替url,你需要用'Sockets':
reply = "";
conn = new Socket;
if (conn.open ("transfer.proshopeurope.com:80")) {
// send a HTTP GET request
conn.writeln("GET /TEMP/test.xml HTTP/1.0\r\nHost: transfer.proshopeurope.com\r\n");
// and read the server's reply
reply = conn.read(999999);
conn.close();
}
这会将 return 所有的响应变成 'reply' 然后你应该使用正则表达式只得到 xml.
您不一定需要使用套接字。主要原因是套接字不支持 SSL。因此,如果您的连接是通过 SSL 进行的,则 ExtendScripts 套接字将失败。
您可以使用 system.callSystem() 进行 shell 调用。比如看this SO question中"EDIT 2"下面的代码我前段时间问过。
如需更深入的讨论,请查看 this thread on Adobe's Forums 我在其中讨论了更多细节。
我正在尝试为 After Effects 脚本获取托管在 Web 服务器上的 XML 文件。
谁能解释一下为什么这种方法似乎不起作用?
//var xml_path = "/c/test.xml";
var xml_path = "http://transfer.proshopeurope.com/TEMP/test.xml";
function getXML(){
var xml_file = new File(this.xml_path);
if(xml_file.open("r")){
var xml_string = xml_file.read();
var xml = new XML(xml_string);
xml_file.close();
return xml;
}else{
return false;
}
}
$.writeln(getXML());
顺便说一句,如果我使用在顶部注释掉的本地路径,它工作正常。
你不能用'new File'代替url,你需要用'Sockets':
reply = "";
conn = new Socket;
if (conn.open ("transfer.proshopeurope.com:80")) {
// send a HTTP GET request
conn.writeln("GET /TEMP/test.xml HTTP/1.0\r\nHost: transfer.proshopeurope.com\r\n");
// and read the server's reply
reply = conn.read(999999);
conn.close();
}
这会将 return 所有的响应变成 'reply' 然后你应该使用正则表达式只得到 xml.
您不一定需要使用套接字。主要原因是套接字不支持 SSL。因此,如果您的连接是通过 SSL 进行的,则 ExtendScripts 套接字将失败。
您可以使用 system.callSystem() 进行 shell 调用。比如看this SO question中"EDIT 2"下面的代码我前段时间问过。
如需更深入的讨论,请查看 this thread on Adobe's Forums 我在其中讨论了更多细节。