跳至主要内容
Adaptive Planning
上次更新时间 :2024-09-20
ai.xml

ai.xml

函数

方法
参数
退货
描述
createFromUrl(url, 方法, 正文, 标头, 回调)
自 2018.3 起上线
url:字符串,有效 URL
method:String 有效的 HTTP 方法
body:字符串请求正文
headers:字符串 HTTP 标头
回调:对象 A 函数
ai.xml.sax
创建可以解析 XML 流的 XML SAX 解析器对象。
createFromUrlWithAuthorization(url, 方法, 正文, 标头, 回调)
自 2018.3 起上线
url:字符串,有效 URL
method:String 有效的 HTTP 方法
body:字符串请求正文
headers:字符串 HTTP 标头
回调:对象 A 函数
ai.xml.sax
创建一个 XML SAX 解析器对象,该对象可以解析经过 OAuth 授权的 XML 流。
createParser()
ai.xml.parser
创建可解析 XML 字符串的 XML 解析器对象。
createDocument()
ai.xml.document
创建 XML 文档。
createDocType( xmlStr )
  • xmlStr : String 有效的 DOCType XML 字符串
ai.xml.docType
创建一个要添加到 XML 文档的文档类型对象,以定义其文档类型。
createElement( name )
  • name:XML 元素的 String 名称
ai.xml.element
创建一个可添加到 XML 文档的 XML 元素,该元素是 XML 文档的基本构建块。
createAttribute( 名称, 值 )
  • name:属性的 String 名称
  • value:String 属性的值
ai.xml.attribute
创建可添加到 XML 元素的属性对象。
示例
// Construct the sample XML request below /* <request> <control> <senderid>adaptiveplanning</senderid> <password>Bts9DrRkeZ</password> <controlid>SomeRandomThingToMatchToResponse</controlid> <dtdversion>3.0</dtdversion> </control> </request> */ // create XML document var doc = ai.xml.createDocument(); // create root element var requestEl = ai.xml.createElement('request'); // create control element var controlEl = ai.xml.createElement('control'); //create senderid element var senderIdEl = ai.xml.createElement('senderid'); senderIdEl.setText('adaptiveplanning'); //add <senderid> to <control> element controlEl.addChildElement(senderIdEl); //create password element var controlPasswordEl = ai.xml.createElement('password'); controlPasswordEl.setText('Bts9DrRkeZ'); //add <password> to <control> element controlEl.addChildElement(controlPasswordEl); //create controlid element var controlIdEl = ai.xml.createElement('controlid'); controlIdEl.setText('SomeRandomThingToMatchToResponse'); //add <controlid> to <control> element controlEl.addChildElement(controlIdEl); //create dtdversion element var dtdEl = ai.xml.createElement('dtdversion'); dtdEl.setText('3.0'); //add <dtdversion> to <control> element controlEl.addChildElement(dtdEl); //add <control> element to the main <request> element requestEl.addChildElement(controlEl); //set <request> as the doc's root element doc.setRootElement(requestEl);

ai.xml.sax

方法
参数
退货
描述
createFromText()
XML:string
编码:UTF8
回调:具有函数的对象
ai.xml.sax
创建可以解析 XML 文本的 XML SAX 解析器对象。
限制为 250 万个字符。
createFromUrl()
url:字符串,有效 URL
method:String 有效的 HTTP 方法
body:字符串请求正文
headers:字符串 HTTP 标头
回调:具有函数的对象
ai.xml.sax
创建可以解析 XML 流的 XML SAX 解析器对象。
createFromUrlWithAuthorisation()
url:字符串,有效 URL
method:String 有效的 HTTP 方法
body:字符串请求正文
headers:字符串 HTTP 标头
回调:具有函数的对象
ai.xml.sax
创建一个 XML SAX 解析器对象,该对象可以解析经过 OAuth 授权的 XML 流。
ai.xml.sax
以下示例使用
callbacks
。回调是在另一个函数执行完毕后执行的函数。将回调与 ai.xml.sax 解析器结合使用的好处之一是,您可以捕获错误并在 CCDS 运行的日志中显示这些错误,以便更轻松地进行故障排除。
ai.xml.sax.createFromText example
var data = { books: [], currentTag: '' }; function createSaxParser(callbacks) { var xml = '<BookStore><book category="Cooking"><title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>$30.00</price></book><book category="Children"><title lang="en">Harry Potter</title><author>Norwegian: . French: </author><year>2015</year> <price>$50.00</price></book><book category="Sports"><title lang="en">Sports for Health</title><author>&#352;umbera</author><year>2016</year><price>$330.00</price></book> </BookStore>'; try { return ai.xml.sax.createFromText(xml, "UTF8", callbacks); } catch(exception) { ai.log.logError('Unable to setup sax parser', '' + exception); throw exception; } } function testConnection(context) { var parser = null; var callbacks = {}; var matched = false; callbacks.onOpenTag = function (tag) { if(tag.name === 'book') { matched = true; parser.stop(); } }; parser = createSaxParser(callbacks); parser.readToEnd(); return matched; } function importStructure(context) { var builder = context.getStructureBuilder(); var table = builder.addTable('MyNewTableFromText'); table.setDisplayName('MyNewTableFromText'); addColumn(table, 'book', 1, 'string', 100); addColumn(table, 'title', 2, 'string', 500); addColumn(table, 'author', 3, 'string', 100); addColumn(table, 'year', 4, 'string', 200); addColumn(table, 'price', 5, 'string', 1000) } function importData(context) { var rowset = context.getRowset(); rowset.setSmartParsingEnabled(true); var parser = null; var callbacks = {}; callbacks.onOpenTag = function (tag) { data.currentTag = tag.name; if(tag.name === 'book') { var book = { category: tag.attributes['category'] }; data.books.push(book); } }; callbacks.onText = function (text) { var current = data.books.length > 0 ? data.books[data.books.length-1] : null; if(data.currentTag === 'title') { current.title = text; } if(data.currentTag === 'author') { current.author = text; } if(data.currentTag === 'year') { current.year = text; } if(data.currentTag === 'price') { current.price = text; } }; callbacks.onCloseTag = function (tagname) { if(tagname === 'book') { var saving = data.books.pop(); save(rowset, saving); } }; parser = createSaxParser(callbacks); parser.readToEnd(); } function addColumn(table, columnName, order, type, length) { var newCol = table.addColumn(columnName); newCol.setDisplayName(columnName); newCol.setDisplayOrder(order); newCol.setIncludeByDefault(true); switch (type) { case 'string': newCol.setTextColumnType(length); newCol.setRemoteColumnType('string'); break; case 'datetime': newCol.setDateTimeColumnType(); newCol.setRemoteColumnType('datetime'); break; case 'float': newCol.setFloatColumnType(); newCol.setRemoteColumnType('float'); break; default: newCol.setTextColumnType(100); newCol.setRemoteColumnType('string'); } } var save = function (rowset, book) { var cells = []; cells.push(book.category); cells.push(book.title); cells.push(book.author); cells.push(book.year); cells.push(book.price); rowset.addRow(cells); };
ai.xml.sax.createFromUrl example
var data = { entires: [], currentTag: '' }; function createSaxParser(callbacks) { var url = 'https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.atom'; var method = 'GET'; var body = ``; var headers = {}; try { return ai.xml.sax.createFromUrl(url, method, body, headers, callbacks); } catch (exception) { ai.log.logError('Unable to setup sax parser', '' + exception); throw exception; } } function testConnection(context) { var parser = null; var callbacks = {}; var matched = false; callbacks.onOpenTag = function (tag) { if (tag.name === 'entry') { matched = true; parser.stop(); } }; parser = createSaxParser(callbacks); parser.readToEnd(); return matched; } function importStructure(context) { var builder = context.getStructureBuilder(); var table = builder.addTable('StandardLoaderData'); table.setDisplayName('StandardLoaderData'); addColumn(table, 'id', 0, 'string', 100); addColumn(table, 'title', 1, 'string', 500); addColumn(table, 'updated', 2, 'string', 100); addColumn(table, 'link', 3, 'string', 200); addColumn(table, 'summary', 4, 'string', 1000); addColumn(table, 'georss:point', 5, 'string', 200); addColumn(table, 'georss:elev', 6, 'string', 200); } function importData(context) { var rowset = context.getRowset(); rowset.setSmartParsingEnabled(true); var parser = null; var callbacks = {}; callbacks.onOpenTag = function (tag) { data.currentTag = tag.name; if (tag.name == 'entry') { var entry = {}; data.entires.push(entry); return; } if (tag.name == 'link') { if (tag.attributes) { var current = data.entires.length > 0 ? data.entires[data.entires.length-1] : null; if(current !== null) { current.link = tag.attributes["href"]; } } } }; callbacks.onText = function (text) { var current = data.entires.length > 0 ? data.entires[data.entires.length-1] : null; if(current === null) { return; } switch (data.currentTag) { case "id": case "title": case "updated": case "summary": case "georss:point": case "georss:elev": current[data.currentTag] = text; break; } }; callbacks.onCloseTag = function (tagname) { if (tagname == 'entry') { var saving = data.entires.pop(); save(rowset, saving); } }; callbacks.onCData = function (data) { if (data.length === 0) return; if (data.currentTag == 'summary') { var current = data.entires.length > 0 ? data.entires[data.entires.length-1] : null; current.summary = data; } }; parser = createSaxParser(callbacks); parser.readToEnd(); } function addColumn(table, columnName, order, type, length) { var newCol = table.addColumn(columnName); newCol.setDisplayName(columnName); newCol.setDisplayOrder(order); newCol.setIncludeByDefault(true); switch (type) { case 'string': newCol.setTextColumnType(length); newCol.setRemoteColumnType('string'); break; case 'datetime': newCol.setDateTimeColumnType(); newCol.setRemoteColumnType('datetime'); break; case 'float': newCol.setFloatColumnType(); newCol.setRemoteColumnType('float'); break; default: newCol.setTextColumnType(100); newCol.setRemoteColumnType('string'); } } var save = function (rowset, entry) { var cells = []; cells.push(entry.id || ''); cells.push(entry.title || ''); cells.push(entry.updated || ''); cells.push(entry.link || ''); cells.push(entry.summary || ''); cells.push(entry['georss:point'] || ''); cells.push(entry['georss:elev'] || ''); rowset.addRow(cells); };

ai.xml.parser

方法
参数
退货
描述
parse( xmlStr )
  • xmlStr 有效的 XML 文档字符串
ai.xml.document
将有效的 XML 文档字符串解析为 XML 文档。
解析示例
var xmlString = '<request><control><senderid>adaptiveplanning</senderid><password>Bts9DrRkeZ</password><controlid>SomeRandomThingToMatchToResponse</controlid><dtdversion>3.0</dtdversion></control><operation><authentication><login><userid>Julia</userid><companyid>companyplanningDEV</companyid><password>GhY93tYi</password></login></authentication></operation></request>'; var parser = ai.xml.createParser(); var xmlDoc = parser.parse(xmlString); /* Output: <request> <control> <senderid>adaptiveplanning</senderid> <password>Bts9DrRkeZ</password> <controlid>SomeRandomThingToMatchToResponse</controlid> <dtdversion>3.0</dtdversion> </control> <operation> <authentication> <login> <userid>Julia</userid> <companyid>companyplanningDEV</companyid> <password>GhY93tYi</password> </login> </authentication> </operation> </request> */

ai.xml.document

方法
参数
退货
描述
clone()
ai.xml.document
返回此文档的副本。
getDOCType()
ai.xml.docType
获取文档 DOCType。
getRootElement()
ai.xml.element
获取文档中的根元素。
setDOCTYPE( docType )
  • docType : ai.xml.docType DOCType,用于将文档设置为
设置文档 DOCType。
setRootElement( element )
  • element : ai.xml.element 要作为文档根元素的元素。
设置文档根元素。
toString()
提供 XML 文档的格式化字符串表示形式。

ai.xml.docType

方法
参数
退货
描述
toString()
String
提供此文档类型声明的字符串表示形式。
示例
var doc = ai.xml.createDocument(); var docType = ai.xml.createDocType('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'); //set doc type doc.setDOCTYPE(docType); //get doc type var getdoctype=doc.getDOCTYPE(); var rootEl = ai.xml.createElement('Books'); //set root element doc.setRootElement(rootEl); //sample clone var cloned_doc=doc.clone(); //get root element var docRoot=doc.getRootElement(); //convert the xml result to a string for logging ai.log.logInfo(doc.toString()) /*Output: Cloned data: <Books /> Doc type is<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Root element is <Books /> */

ai.xml.element

方法
参数
退货
描述
addChildElement( element )
  • element:ai.xml.element 要添加的元素
添加子级元素。
clone()
ai.xml.element
返回此元素的副本。
getAttribute( 名称 )
name:属性的 String 名称
ai.xml.attribute
获取指定姓名的属性。
getAttributeAt( 索引 )
index:属性的整数索引
ai.xml.attribute
获取此元素在属性数组的给定索引处的属性。
getAttributes()
Array<ai.xml.attribute>
获取此元素的属性。
getAttributeValue( name )
  • name:属性的 String 名称
String
获取指定姓名的属性值。
getChildElement( name )
  • name:元素的 String 名称
ai.xml.element
获取具有指定给定名称的第一个子元素。
getChildElementAt( 索引 )
  • index:元素的整数索引
ai.xml.element
获取子元素中给定索引处的子元素。
getChildElements()
数组 <ai.xml.elements>
获取此元素的所有子元素的数组。
getChildElements( name )
  • name:元素的 String 名称
数组 <ai.xml.element>
获取此元素具有给定名称的子级元素数组。
getCommentText()
String
获取备注文本。
getName()
String
获取此元素的限定名称。
getText()
String
获取此元素或 CDATA 的文本。
hasContents()
Boolean
指明此元素是否具有子级内容:Text、CDATA 或子级元素。
removeAllAttributes()
移除此元素的所有属性。
移除属性 (name)
  • name:属性的 String 名称
移除元素属性数组中给定名称的属性,并重新压缩该数组。
removeChildElement( name )
  • name:元素的 String 名称
移除具有指定名称的第一个子元素。
moveChildElementAt(index)
  • index:元素的整数索引
移除子级元素内给定索引处的子级元素。
removeChildElements()
整数
移除此元素的所有子元素,并返回移除的元素的计数。
removeChildElements( name )
  • name:元素的 String 名称
整数
从此元素中移除给定元素名称的所有子级元素,并返回移除的元素的计数。
removeComments()
移除直接附加到此元素的所有备注。
removeText()
移除直接附加到此元素的所有文本(包括 CDATA 节)。
setAttribute(attribute)
  • attribute : ai.xml.attribute 要添加的属性对象
向此元素添加属性。
setAttribute(name, value )
  • name:属性的 String 名称
  • value:String 属性的值
为此元素设置指定姓名的属性值。
setCDATAText( 文本 )
  • text:String CDATA 文本
从此元素(包括子元素)中移除所有现有内容(评论除外),然后为此元素设置 CDATA 版块文本。
setCommentText( text )
  • text:String 备注文本
移除直接附加到此元素的所有评论,然后添加具有给定文本的新评论。
setName( name )
  • name:元素的 String 名称
设置此元素的名称。
setText( text )
  • text:元素的字符串文本值
从此元素(包括子元素)中移除所有现有内容(评论除外),然后设置元素文本。
toString()
提供此元素的格式化字符串表示形式。
示例
createDocument()、createElement(name)、addChildElement(name)、clone()、setText()、setCommentText(text)、getCommentText() 的示例
// create XML document var doc = ai.xml.createDocument(); // create root element var requestEl = ai.xml.createElement('request'); // create an element '<control>' var controlEl = ai.xml.createElement('control'); //create a username or id element '<senderid>' var senderIdEl = ai.xml.createElement('senderid'); //set text for the senderid element 'adaptive planning' senderIdEl.setText('adaptiveplanning'); //add <senderid> to <control> element controlEl.addChildElement(senderIdEl); //create a <password> element var passwordEl = ai.xml.createElement('password'); //set text for the password element 'pwd' passwordEl.setText('pwd'); //add <password> to <control> element controlEl.addChildElement(passwordEl); //add <control> element to the root requestEl.addChildElement(controlEl); //clone the sender id element cloneEl=senderIdEl.clone(); //add clone() element to the root element requestEl.addChildElement(cloneEl); //setCommentText requestEl.setCommentText("The above element is cloned"); //get comment text ai.log.logInfo(getCommentText()); //Log Output: The above element is cloned //set document's root doc.setRootElement(requestEl); /* Output: <request> <control> <senderid>adaptiveplanning</senderid> </control> <senderid>adaptiveplanning</senderid> <!-- The above element is cloned--> </request> */
getChildElement()、getChildElementAt()、getChildElements 和 getChildElements( name ) 的示例
// create XML document var doc = ai.xml.createDocument(); // create root element var requestEl = ai.xml.createElement('request'); // create an element '<control>' var controlEl = ai.xml.createElement('control'); //create a username or id element '<senderid>' var senderIdEl = ai.xml.createElement('senderid'); //set text for the senderid element 'adaptive planning' senderIdEl.setText('Sender id 1'); //add <senderid> to <control> element controlEl.addChildElement(senderIdEl); //create another sender id element '<senderid>' var senderIdEl2 = ai.xml.createElement('senderid'); //set text for the senderid element 'adaptive planning' senderIdEl2.setText('Sender id 2'); //add <senderid> to <control> element controlEl.addChildElement(senderIdEl2); //create a <password> element var passwordEl = ai.xml.createElement('password'); //set text for the password element 'pwd' passwordEl.setText('pwd'); //add <password> to <control> element controlEl.addChildElement(passwordEl); //add <control> element to the root requestEl.addChildElement(controlEl); //set document's root doc.setRootElement(requestEl); //getChildElement(name) var firstChildElement="First Child element of <control> is "+requestEl.getChildElement( "senderid" ).toString(); //Output: First Child element of <control> is <senderid>Sender id 1</senderid> //getChildElementAt(index) var elementIndex="Element at index 0 is"+requestEl.getChildElementAt( 0 ).toString(); /* Output: Element at index 0 is <control><senderid>Sender id 1</senderid><senderid>Sender id 2</senderid><password>pwd</password></control> */ //getChildElements() var specificChildElements="Child elements for the control element:"+controlEl.getChildElements().toString(); //Output: <senderid>Sender id 1</senderid><senderid>Sender id 2</senderid><password>pwd</password> //getChildElements(name) var childElementsControl="All child elements of control element with <senderid>: "+controlEl.getChildElements("senderid" ).toString(); //Output:All child elements of control element with <senderid>:<senderid>Sender id 1</senderid>,<senderid>Sender id 2</senderid>
hasContents()、removeChildElement( name )、removeChildElementAt(index)、removeChildElements() 和 moveChildElements( name ) 的示例
// create XML document var doc = ai.xml.createDocument(); // create root element var requestEl = ai.xml.createElement('request'); // create an element '<control>' var controlEl = ai.xml.createElement('control'); //create a username or id element '<senderid>' var senderIdEl = ai.xml.createElement('senderid'); //set text for the senderid element 'adaptive planning' senderIdEl.setText('Sender id 1'); //getText() ai.log.logInfo(senderIdEl.getText()); //Sender id 1 //add <senderid> to <control> element controlEl.addChildElement(senderIdEl); //create another sender id element '<senderid>' var senderIdEl2 = ai.xml.createElement('senderid'); //set text for the senderid element 'adaptive planning' senderIdEl2.setText('Sender id 2'); //add <senderid> to <control> element controlEl.addChildElement(senderIdEl2); //create a <password> element var passwordEl = ai.xml.createElement('password'); //set text for the password element 'pwd' passwordEl.setText('pwd'); //add <password> to <control> element controlEl.addChildElement(passwordEl); //add <control> element to the root requestEl.addChildElement(controlEl); //set document's root doc.setRootElement(requestEl); //removeChildElement of <control> element - First child element removal var removeFirstChildElement=controlEl.removeChildElement( "senderid" ); /*Output: |Inital XML | After removal of the child element <request> <request> <control> <control> <senderid>Sender id 1</senderid> <senderid>Sender id 2</senderid> <senderid>Sender id 2</senderid> <password>pwd</password> <password>pwd</password> </control> <control/> </request> <request/> */ //removeChildElementAt index 0 var removeIndexChildElement=requestEl.removeChildElementAt(0); /*Output: |Initial XML | After removing the child element at index 0 <request> <request><request/> <control> <senderid>Sender id 1</senderid> <senderid>Sender id 2</senderid> <password>pwd</password> <control/> <request/> */ //removeChildElements() var removeAllChildElements= controlEl.removeChildElements(); /*Output: |Initial XML | After removing the child element at index 0 <request> <request><control/><request/> <control> <senderid>Sender id 1</senderid> <senderid>Sender id 2</senderid> <password>pwd</password> <control/> <request/> */ //removeChildElements( name ) and hasContents() if(controlEl.hasContents()){ var removeSpecificElement=controlEl.removeChildElement( "senderid" ); } /*Output: |Inital XML | After removal of the child element <request> <request> <control> <control> <senderid>Sender id 1</senderid> <password>pwd</password> <senderid>Sender id 2</senderid> </control> <password>pwd</password> </request> <control/> <request/> */

ai.xml.attribute

方法
参数
退货
描述
clone()
ai.xml.attribute
返回此属性的副本。
getName()
String
获取属性的名称。
getValue()
String
获取属性的值。
setName( name )
  • name:属性的 String 名称
设置属性的名称。
setValue( value )
  • value:String 属性的值
设置属性的值。
toString()
返回此属性的字符串表示形式。
示例
var tablesElement = ai.xml.createElement('Tables'); var table1Element = ai.xml.createElement('Table'); var row1=ai.xml.createElement('row'); var row2=ai.xml.createElement('row'); //Create a new arribute var attribute1 = ai.xml.createAttribute('remoteId', '248'); //Add the attribute to <table> element using setAttribute(ai.xml.attribute) table1Element.setAttribute(attribute1); //Or set the name and value of the attribute for the <row> elements using setAttribute(name,value) row1.setAttribute('age','50'); row1.setAttribute('color','white'); row2.setAttribute('age','35'); row2.setAttribute('color','blue'); //Set text for the <table> element table1Element.setText('Sample table'); //Add <table> as the child of <tables> element tablesElement.addChildElement(table1Element); table1Element.addChildElement(row1); table1Element.addChildElement(row2); /*Ouput <Tables> <Table remoteId="248"> Sample table <row age="50" /> <row age="35" /> </Table> </Tables> */ //Clone() attributes var cloned = row1.clone(); cloned.setName('cloned_row'); table1Element.addChildElement(cloned); /*Ouput <Tables> <Table remoteId="248"> Sample table <row age="50" /> <row age="35" /> <cloned_row age="50"> </Table> </Tables> */ //getAttribute( name ) ai.log.logInfo(table1Element.getAttribute("remoteid")); //Output:remoteId="248" //getAttributeAt( index ) ai.log.logInfo(row1.getAttributeAt(0).toString()); //Output: age=50 //getAttributes() ai.log.logInfo(row1.getAttributes().toString()); //Output: age="50",color="white" //getAttributeValue( name ) ai.log.logInfo(row2.getAttributeValue('color').toString()); //Output: blue //removeAttribute( name ) var removeRow1Attribute=row1.removeAttribute('age'); /*Output: |Inital XML | After removing the attribute 'age' for row1 <Tables> <Tables> <Table remoteId="248">Sample table <Table remoteId="248">Sample table <row age="50" color="white" /> <row color="white" /> <row age ="35" color="blue" /> <row age ="35" color="blue" /> <Table/> <Table/> <Tables/> <Tables/> */ //removeAllAttributes() var removeRow1Attributes=row1.removeAllAttributes(); /*Output: |Inital XML | After removing the attribute 'age' for row1 <Tables> <Tables> <Table remoteId="248">Sample table <Table remoteId="248">Sample table <row age="50" color="white" /> <row/> <row age ="35" color="blue" /> <row age ="35" color="blue" /> <Table/> <Table/> <Tables/> <Tables/> */

使用 AWS S3 查看 XML 输出日志

您必须先解析示例 XML,然后再使用 ai.log 方法记录结果。要查看原始 XML 示例,请使用以下命令将文件转换为字符串:
toString()
函数,并查看您的 AWS S3 存储桶中的文件。
使用以下示例连接到您的 AWS S3 实例,以创建和查看 XML 结果。您需要提供存储桶名称、钥匙、访问钥匙、秘密钥匙和区域值。有关更多信息和示例代码,请参见 ai.awss3。
示例
function testConnection(context) { var bucketName = 'xxx'; var key = 'newfile.xml'; var awsAccessKey = 'xxx'; var awsSecretKey = 'xxx'; var region = 'xxx' var doc = ai.xml.createDocument(); var docType = ai.xml.createDocType('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'); //set doc type doc.setDOCTYPE(docType); //get doc type var getdocType="Doc type is"+doc.getDOCTYPE().toString(); var rootEl = ai.xml.createElement('Books'); //set root element doc.setRootElement(rootEl); //get root element var getroot="Root element is "+doc.getRootElement().toString(); //Combine the Doc type and the root element sentences to form a string var result = getdocType+"\n"+getroot; //send the string to a file on aws ai.awss3.putFile(bucketName, key, result.toString(), region, awsAccessKey, awsSecretKey); return true; } /* Output: Doc type is<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Root element is <Books /> */