ai.xml
Functies
Methode | Parameters | Retouren | Omschrijving |
|---|---|---|---|
createFromUrl(url, method, body, headers, callbacks) beschikbaar vanaf 2018.3 | URL: Tekenreeks Geldige URL methode: Tekenreeks Geldige HTTP-methode hoofdtekst: hoofdtekst tekenreeksaanvraag headers: tekenreeks HTTP-koptekst callbacks: functie Object A | ai.xml.sax | Hiermee maakt u een XML SAX-parserobject dat een XML-stroom kan parseren. |
createFromUrlWithAuthorization(url, method, body, headers, callbacks) beschikbaar vanaf 2018.3 | URL: Tekenreeks Geldige URL methode: Tekenreeks Geldige HTTP-methode hoofdtekst: hoofdtekst tekenreeksaanvraag headers: tekenreeks HTTP-koptekst callbacks: functie Object A | ai.xml.sax | Hiermee maakt u een XML SAX-parserobject dat een XML-stroom met autorisatie kan parseren met behulp van OAuth. |
createParser() | ai.xml.parser | Hiermee maakt u een XML-parserobject dat XML-tekenreeksen kan parseren. | |
createDocument() | ai.xml.document | Hiermee maakt u een XML-document. | |
createDocType( xmlStr ) |
| ai.xml.docType | Maak een doctype-object dat aan een XML-document wordt toegevoegd om het doctype te definiëren. |
createElement( name ) |
| ai.xml.element | Maak een XML-element, de basisbouwsteen van een XML-document, dat aan een XML-document kan worden toegevoegd. |
createAttribute( name, value ) |
| ai.xml.attribute | Hiermee maakt u een kenmerkobject dat aan een XML-element kan worden toegevoegd. |
- Voorbeelden
- // 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
Methode | Parameters | Retouren | Omschrijving |
|---|---|---|---|
createFromText() | XML:string Codering: UTF8 Callbacks: een object met functies | ai.xml.sax | Hiermee maakt u een XML SAX-parserobject dat XML-tekst kan parseren.
Beperkt tot 2,5 miljoen tekens. |
createFromUrl() | URL: Tekenreeks Geldige URL methode: Tekenreeks Geldige HTTP-methode hoofdtekst: hoofdtekst tekenreeksaanvraag headers: tekenreeks HTTP-koptekst callbacks: een object met functies | ai.xml.sax | Hiermee maakt u een XML SAX-parserobject dat een XML-stroom kan parseren. |
createFromUrlWithAuthorization() | URL: Tekenreeks Geldige URL methode: Tekenreeks Geldige HTTP-methode hoofdtekst: hoofdtekst tekenreeksaanvraag headers: tekenreeks HTTP-koptekst callbacks: een object met functies | ai.xml.sax | Hiermee maakt u een XML SAX-parserobject dat een XML-stroom met autorisatie kan parseren met behulp van OAuth. |
De
ai.xml.sax
onderstaande voorbeelden gebruiken: callbacks
. Een callback is een functie die wordt uitgevoerd nadat een andere functie is voltooid. Een van de voordelen van het gebruik van callbacks met ai.xml.sax-parsers is dat u fouten kunt opvangen en deze fouten kunt weergeven in de logboeken van een CCDS-run om het oplossen van problemen te vereenvoudigen.- voorbeeld ai.xml.sax.createFromText
- 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>Š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
Methode | Parameters | Retouren | Omschrijving |
|---|---|---|---|
parse( xmlStr ) |
| ai.xml.document | Parseert een geldige XML-documenttekenreeks in een XML-document. |
- Voorbeeld voor parseren
- 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
Methode | Parameters | Retouren | Omschrijving |
|---|---|---|---|
clone() | ai.xml.document | Retourneert een kloon van dit document. | |
getDOCTYPE() | ai.xml.docType | Hiermee wordt het document DOCTYPE opgehaald. | |
getRootElement() | ai.xml.element | Hiermee wordt het hoofdelement in het document opgehaald. | |
setDOCTYPE( docType ) |
| Hiermee stelt u het document DOCTYPE in. | |
setRootElement( element ) |
| Hiermee stelt u het hoofdelement van het document in. | |
toString() | Biedt een opgemaakte tekenreeksweergave van het XML-document. |
ai.xml.docType
Methode | Parameters | Retouren | Omschrijving |
|---|---|---|---|
toString() | String | Biedt een tekenreeksweergave van dit documenttypedeclaratie. |
- Voorbeeld
- 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
Methode | Parameters | Retouren | Omschrijving |
|---|---|---|---|
addChildElement( element ) |
| Hiermee wordt een onderliggend element toegevoegd. | |
clone() | ai.xml.element | Retourneert een kloon van dit element. | |
getAttribute( name ) | name : Tekenreeksnaam van het kenmerk | ai.xml.attribute | Hiermee wordt het kenmerk van de opgegeven naam opgehaald. |
getAttributeAt( index ) | index: Integer Index van kenmerk | ai.xml.attribute | Haalt het kenmerk op in de opgegeven index van de kenmerkenmatrix voor dit element. |
getAttributes() | Array<ai.xml.attribute> | Hiermee worden de kenmerken van dit element opgehaald. | |
getAttributeValue( name ) |
| String | Hiermee wordt de waarde van het kenmerk van de opgegeven naam opgehaald. |
getChildElement( name ) |
| ai.xml.element | Hiermee wordt het eerste onderliggende element met de opgegeven opgegeven naam opgehaald. |
getChildElementAt( index ) |
| ai.xml.element | Hiermee wordt een onderliggend element opgehaald bij de opgegeven index binnen de onderliggende elementen. |
getChildElements() | Array<ai.xml.elements> | Hiermee wordt de matrix van alle onderliggende elementen voor dit element opgehaald. | |
getChildElements( name ) |
| Array<ai.xml.element> | Hiermee wordt de matrix met onderliggende elementen voor dit element met de opgegeven naam opgehaald. |
getCommentText() | String | Hiermee wordt de tekst van de opmerking opgehaald. | |
getName() | String | Hiermee wordt de gekwalificeerde naam van dit element opgehaald. | |
getText() | String | Hiermee wordt de tekst van dit element of CDATA opgehaald. | |
hasContents() | Boole-waarde | Hiermee wordt aangegeven of dit element onderliggende inhoud heeft: tekst-, CDATA- of onderliggende elementen. | |
removeAllAttributes() | Hiermee worden alle kenmerken van dit element verwijderd. | ||
removeAttribute( name ) |
| Hiermee wordt het kenmerk van de opgegeven naam in de matrix met elementkenmerken verwijderd en wordt de matrix opnieuw gecomprimeerd. | |
removeChildElement( name ) |
| Hiermee wordt het eerste onderliggende element met de opgegeven naam verwijderd. | |
removeChildElementAt( index ) |
| Hiermee wordt een onderliggend element in de opgegeven index binnen de onderliggende elementen verwijderd. | |
removeChildElements() | Geheel getal | Alle onderliggende elementen van dit element worden verwijderd en het aantal verwijderde elementen wordt geretourneerd. | |
removeChildElements( name ) |
| Geheel getal | Hiermee worden alle onderliggende elementen van de opgegeven elementnaam uit dit element verwijderd en wordt het aantal verwijderde elementen geretourneerd. |
removeComments() | Hiermee worden alle opmerkingen verwijderd die rechtstreeks aan dit element zijn gekoppeld. | ||
removeText() | Hiermee wordt alle tekst (inclusief CDATA-secties) verwijderd die rechtstreeks aan dit element is gekoppeld. | ||
setAttribute(-kenmerk) |
| Hiermee wordt een kenmerk aan dit element toegevoegd. | |
setAttribute(name, value ) |
| Hiermee stelt u de waarde in van het kenmerk van de opgegeven naam voor dit element. | |
setCDATAText( text ) |
| Hiermee wordt alle bestaande inhoud (behalve opmerkingen) uit dit element verwijderd, inclusief onderliggende elementen, en wordt vervolgens de CDATA-sectietekst voor dit element ingesteld. | |
setCommentText( text ) |
| Hiermee worden alle opmerkingen verwijderd die rechtstreeks aan dit element zijn gekoppeld en wordt vervolgens een nieuwe opmerking met de opgegeven tekst toegevoegd. | |
setName( name ) |
| Hiermee stelt u de naam van dit element in. | |
setText( text ) |
| Hiermee wordt alle bestaande inhoud (behalve opmerkingen) uit dit element verwijderd, inclusief onderliggende elementen, en wordt vervolgens de elementtekst ingesteld. | |
toString() | Biedt een opgemaakte tekenreeksweergave van dit element. |
- Voorbeelden
- Voorbeeld voor 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> */Voorbeeld voor getChildElement(), getChildElementAt(), getChildElements en 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>Voorbeelden voor hasContents(), removeChildElement( name ), removeChildElementAt(index), removeChildElements() en 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
Methode | Parameters | Retouren | Omschrijving |
|---|---|---|---|
clone() | ai.xml.attribute | Retourneert een kloon van dit kenmerk. | |
getName() | String | Hiermee wordt de naam van het kenmerk opgehaald. | |
getValue() | String | Hiermee wordt de waarde van het kenmerk opgehaald. | |
setName( name ) |
| Hiermee stelt u de naam van het kenmerk in. | |
setValue( value ) |
| Hiermee stelt u de waarde van het kenmerk in. | |
toString() | Retourneert een tekenreeksweergave van dit kenmerk. |
- Voorbeeld
- 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/> */
XML-uitvoerlogboeken weergeven met AWS S3
U moet uw voorbeeld-XML parseren voordat u de resultaten registreert met de methoden ai.log. Als u onbewerkte XML-voorbeelden wilt weergeven, converteert u het bestand naar een tekenreeks met:
toString()
functie en bekijk het bestand in uw AWS S3-bucket. Gebruik het onderstaande voorbeeld om verbinding te maken met uw AWS S3-instance voor het maken en weergeven van uw XML-resultaten. U hebt de waarden voor de bucketnaam, de sleutel, de toegangssleutel, de geheime sleutel en de regio nodig. Zie ai.awss3 voor meer informatie en voorbeeldcodes
- Voorbeeld
- 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 /> */