Ir para o conteúdo principal
Adaptive Planning
Última atualização: 2024-09-20
ai.xml

ai.xml

Funções

Método
Parâmetros
Devoluções
Descrição
createFromUrl(url, método, corpo, cabeçalhos, retornos de chamada)
disponível a partir de 2018.3
url: cadeia de caracteres URL válido
método: cadeia de caracteres de método HTTP válido
body: corpo da solicitação de cadeia de caracteres
headers: cadeia de caracteres HTTP Header
callbacks: função Object A
ai.xml.sax
Cria um objeto de analisador XML SAX que pode analisar um fluxo XML.
createFromUrlWithAuthorization(url, método, corpo, cabeçalhos, retornos de chamada)
disponível a partir de 2018.3
url: cadeia de caracteres URL válido
método: cadeia de caracteres de método HTTP válido
body: corpo da solicitação de cadeia de caracteres
headers: cadeia de caracteres HTTP Header
callbacks: função Object A
ai.xml.sax
Cria um objeto de analisador XML SAX que pode analisar um fluxo XML com autorização usando o OAuth.
createParser()
ai.xml.parser
Cria um objeto de analisador de XML que pode analisar cadeias de caracteres XML.
createDocument()
ai.xml.document
Cria um documento XML.
createDocType( xmlStr )
  • xmlStr: cadeia de caracteres cadeia de caracteres DOCTYPE XML válida
ai.xml.docType
Crie um objeto doctype que seja adicionado a um documento XML para definir seu doctype.
createElement(nome)
  • name: nome da cadeia de caracteres do elemento XML
ai.xml.element
Crie um elemento XML, que é o bloco de construção básico de um documento XML, que pode ser adicionado a um documento XML.
createAttribute(nome, valor)
  • name: cadeia de caracteres Nome do atributo
  • value: valor da cadeia de caracteres do atributo
ai.xml.attribute
Cria um objeto de atributo que pode ser adicionado a um elemento XML.
Exemplos
// 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

Método
Parâmetros
Devoluções
Descrição
createFromText()
XML:string
Codificação: UTF8
Retornos de chamada: um objeto com funções
ai.xml.sax
Cria um objeto de analisador XML SAX que pode analisar texto XML.
Limitado a 2,5 milhões de caracteres.
createFromUrl()
url: cadeia de caracteres URL válido
método: cadeia de caracteres de método HTTP válido
body: corpo da solicitação de cadeia de caracteres
headers: cadeia de caracteres HTTP Header
callbacks: um objeto com funções
ai.xml.sax
Cria um objeto de analisador XML SAX que pode analisar um fluxo XML.
createFromUrlWithAuthorisation()
url: cadeia de caracteres URL válido
método: cadeia de caracteres de método HTTP válido
body: corpo da solicitação de cadeia de caracteres
headers: cadeia de caracteres HTTP Header
callbacks: um objeto com funções
ai.xml.sax
Cria um objeto de analisador XML SAX que pode analisar um fluxo XML com autorização usando o OAuth.
O
ai.xml.sax
os exemplos abaixo usam
callbacks
. Um retorno de chamada é uma função que é executada após o término da execução de outra função. Uma das vantagens de usar retornos de chamada com os analisadores ai.xml.sax é que você pode detectar erros e apresentá-los nos registros de uma execução da fonte de dados em nuvem personalizada para facilitar a solução de problemas.
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); };
Exemplo de ai.xml.sax.createFromUrl
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

Método
Parâmetros
Devoluções
Descrição
parse( xmlStr )
  • xmlStr Cadeia de caracteres de documento XML válida
ai.xml.document
Analisa uma cadeia de caracteres de documento XML válido em um documento XML.
Exemplo de análise
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

Método
Parâmetros
Devoluções
Descrição
clone()
ai.xml.document
Retorna um clone deste documento.
getDOCTYPE()
ai.xml.docType
Obtém o DOCTYPE do documento.
getRootElement()
ai.xml.element
Obtém o elemento raiz no documento.
setDOCTYPE(docType)
  • docType : ai.xml.docType DOCTYPE para definir o documento como
Define o DOCTYPE do documento.
setRootElement( element )
  • element : ai.xml.element Element como o elemento raiz do documento.
Define o elemento raiz do documento.
toString()
Fornece uma representação de cadeia de caracteres formatada do documento XML.

ai.xml.docType

Método
Parâmetros
Devoluções
Descrição
toString()
Cadeia de caracteres
Fornece uma representação de cadeia de caracteres desta declaração de tipo de documento.
Exemplo
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

Método
Parâmetros
Devoluções
Descrição
addChildElement( element )
  • element : ai.xml.element Elemento a ser adicionado
Adiciona um elemento filho.
clone()
ai.xml.element
Retorna um clone deste elemento.
getAttribute(nome)
name: cadeia de caracteres Nome do atributo
ai.xml.attribute
Obtém o atributo do nome fornecido.
getAttributeAt( index )
index: índice de números inteiros do atributo
ai.xml.attribute
Obtém o atributo no índice fornecido da matriz de atributos para este elemento.
getAttributes()
Array<ai.xml.attribute>
Obtém os atributos deste elemento.
getAttributeValue( name )
  • name: cadeia de caracteres Nome do atributo
Cadeia de caracteres
Obtém o valor do atributo do nome fornecido.
getChildElement(nome)
  • name: nome da cadeia de caracteres do elemento
ai.xml.element
Obtém o primeiro elemento filho com o nome especificado.
getChildElementAt( index )
  • index: índice de números inteiros do elemento
ai.xml.element
Obtém um elemento filho no índice fornecido dentro dos elementos filho.
getChildElements()
Array<ai.xml.elements>
Obtém a matriz de todos os elementos filho para este elemento.
getChildElements(nome)
  • name: nome da cadeia de caracteres dos elementos
Array<ai.xml.element>
Obtém a matriz de elementos filho para este elemento com o nome fornecido.
getCommentText()
Cadeia de caracteres
Obtém o texto do comentário.
getName()
Cadeia de caracteres
Obtém o nome qualificado deste elemento.
getText()
Cadeia de caracteres
Obtém o texto deste elemento ou CDATA.
hasContents()
Booliano
Indica se este elemento tem ou não conteúdo filho: Texto, CDATA ou elementos filho.
removeAllAttributes()
Remove todos os atributos deste elemento.
removeAttribute(nome)
  • name: cadeia de caracteres Nome do atributo
Remove o atributo do nome fornecido na matriz de atributos de elemento e recompacta a matriz.
removeChildElement(nome)
  • name: nome da cadeia de caracteres do elemento
Remove o primeiro elemento filho com o nome especificado.
removeChildElementAt( index )
  • index: índice de números inteiros do elemento
Remove um elemento filho no índice fornecido dentro dos elementos filho.
removeChildElements()
Número inteiro
Remove todos os elementos filho deste elemento e retorna o total de elementos removidos.
removeChildElements( name )
  • name: nome da cadeia de caracteres dos elementos
Número inteiro
Remove todos os elementos filho do nome de elemento fornecido deste elemento e retorna o total de elementos removidos.
removeComments()
Remove todos os comentários anexados diretamente a este elemento.
removeText()
Remove todo o texto (incluindo as seções CDATA) anexado diretamente a este elemento.
setAttribute(atributo)
  • attribute : ai.xml.attribute O objeto de atributo a ser adicionado
Adiciona um atributo a este elemento.
setAttribute(name, value )
  • name: cadeia de caracteres Nome do atributo
  • value: valor da cadeia de caracteres do atributo
Define o valor do atributo do nome fornecido para este elemento.
setCDATAText( texto )
  • text : cadeia de caracteres de texto CDATA
Remove todo o conteúdo existente (exceto comentários) deste elemento, incluindo elementos filho, e define o texto da seção CDATA para este elemento.
setCommentText( text )
  • text: texto do comentário da cadeia de caracteres
Remove todos os comentários anexados diretamente a este elemento e, em seguida, adiciona um novo comentário com o texto fornecido.
setName(nome)
  • name: nome da cadeia de caracteres do elemento
Define o nome deste elemento.
setText( text )
  • text: valor de texto da cadeia de caracteres do elemento
Remove todo o conteúdo existente (exceto comentários) deste elemento, incluindo elementos filho, e define o texto do elemento.
toString()
Fornece uma representação de cadeia de caracteres formatada deste elemento.
Exemplos
Exemplo para 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> */
Exemplo para getChildElement(), getChildElementAt(), getChildElements e 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>
Exemplos de hasContents(), removeChildElement( name ), removeChildElementAt(index), removeChildElements() e removeChildElements( 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

Método
Parâmetros
Devoluções
Descrição
clone()
ai.xml.attribute
Retorna um clone deste atributo.
getName()
Cadeia de caracteres
Obtém o nome do atributo.
getValue()
Cadeia de caracteres
Obtém o valor do atributo.
setName(nome)
  • name: cadeia de caracteres Nome do atributo
Define o nome do atributo.
setValue( value )
  • value: valor da cadeia de caracteres do atributo
Define o valor do atributo.
toString()
Retorna uma representação de cadeia de caracteres deste atributo.
Exemplo
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/> */

Visualizar registros de saída XML com AWS S3

Você deve analisar o XML de amostra antes de registrar os resultados com os métodos ai.log. Para visualizar amostras de XML bruto, converta o arquivo em uma cadeia de caracteres com
toString()
A função e visualizar o arquivo no seu bucket S3 da AWS.
Use o exemplo a seguir para se conectar à sua instância do AWS S3 para criar e visualizar seus resultados XML. Você precisará do nome do bucket, da chave, da chave de acesso, da chave secreta e dos valores da região. Para obter mais informações e códigos de exemplo, consulte ai.awss3
Exemplo
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 /> */