Here is an example that demonstrates the concept of what you're trying to do:
<abs contexttype="opengear" style="">
<meta>
<params>
<param access="1" maxlength="0" name="Info 1" oid="params.info1" type="STRING" value="ID NOT FOUND" widget="default"/>
<param access="1" maxlength="0" name="Info 2" oid="params.info2" type="STRING" value="ID NOT FOUND" widget="default"/>
<param access="1" maxlength="0" name="Info 3" oid="params.info3" type="STRING" value="ID NOT FOUND" widget="default"/>
<param access="1" maxlength="0" name="ID 1" oid="params.id1" type="STRING" value="0" widget="default"/>
<param access="1" maxlength="0" name="ID 2" oid="params.id2" type="STRING" value="0" widget="default"/>
<param access="1" maxlength="0" name="ID 3" oid="params.id3" type="STRING" value="0" widget="default"/>
</params>
</meta>
<meta>
<api immediate="true">//CALLING THIS WHENEVER YOU WANT TO RELOAD THE XML
function initXML()
{
//REPLACE THIS WITH A CALL TO PARSE YOUR ACTUAL XML DOCUMENT
var xml = ogscript.parseXML('<team name="NH2017"><squad><player ID="1" name="PLAYER NAME 1" owner="PLAYER OWNER 1"/><player ID="2" name="PLAYER NAME 2" owner="PLAYER OWNER 2"/></squad></team>');
ogscript.putObject("XMLDoc", xml);
}
//PROVIDE THE OID OF THE PARAMETER WITH THE "ID" AND THE OID OF THE PARAMETER WHOSE VALUE YOU'D LIKE TO FILL
function updateInfo(idOID, infoOID)
{
var xmlDoc = ogscript.getObject("XMLDoc"); //TRY TO GET THE XML DOCUMENT
if (xmlDoc == null)
{
params.setValue(infoOID, 0, "XML NOT LOADED");
}
var id = params.getValue(idOID, 0); //GET THE ID
var nodeList = ogscript.runXPath("/team/squad/player[@ID='" + id + "']", xmlDoc); //THIS IS AN XPATH COMMAND TO FIND PLAYERS WITH THE CORRECT ID LEARN MORE ABOUT XPATH AT https://www.w3schools.com/xml/xpath_intro.asp
if (nodeList != null && nodeList.getLength() > 0) //IF OUR XPATH COMMAND RETURNED RESULTS
{
var node = nodeList.item(0);
params.setValue(infoOID, 0, node.getAttribute("name") + " " + node.getAttribute("owner")); //FILL THE VALUE
}
else
{
params.setValue(infoOID, 0, "ID NOT FOUND");
}
}
initXML(); //RELOAD THE XML AT THE START TO MAKE SURE IT IS IN THE SYSTEM</api>
</meta>
<table height="340" left="19" top="21" width="300">
<tr>
<param colspan="1" expand="true" fill="both" insets="2,2,2,2" oid="params.id1" rowspan="1" runtasksonload="true" showlabel="false" weightx="1.0" weighty="1.0">
<task tasktype="ogscript">updateInfo('params.id1', 'params.info1');
</task>
</param>
<param colspan="1" expand="true" fill="both" insets="2,2,2,2" oid="params.info1" rowspan="1" showlabel="false" weightx="1.0" weighty="1.0"/>
</tr>
<tr>
<param colspan="1" expand="true" fill="both" insets="2,2,2,2" oid="params.id2" rowspan="1" runtasksonload="true" showlabel="false" weightx="1.0" weighty="1.0">
<task tasktype="ogscript">updateInfo('params.id2', 'params.info2');</task>
</param>
<param colspan="1" expand="true" fill="both" insets="2,2,2,2" oid="params.info2" rowspan="1" showlabel="false" weightx="1.0" weighty="1.0"/>
</tr>
<tr>
<dropspot colspan="1" fill="both" insets="2,2,2,2" rowspan="1" weightx="1.0" weighty="1.0"/>
<dropspot colspan="1" fill="both" insets="2,2,2,2" rowspan="1" weightx="1.0" weighty="1.0"/>
</tr>
<tr>
<param colspan="1" expand="true" fill="both" insets="2,2,2,2" oid="params.id3" rowspan="1" runtasksonload="true" showlabel="false" weightx="1.0" weighty="1.0">
<task tasktype="ogscript">updateInfo('params.id3', 'params.info3');</task>
</param>
<param colspan="1" expand="true" fill="both" insets="2,2,2,2" oid="params.info3" rowspan="1" showlabel="false" weightx="1.0" weighty="1.0"/>
</tr>
<tr>
<dropspot colspan="1" fill="both" insets="2,2,2,2" rowspan="1" weightx="1.0" weighty="1.0"/>
<dropspot colspan="1" fill="both" insets="2,2,2,2" rowspan="1" weightx="1.0" weighty="1.0"/>
</tr>
<tr>
<dropspot colspan="1" fill="both" insets="2,2,2,2" rowspan="1" weightx="1.0" weighty="1.0"/>
<dropspot colspan="1" fill="both" insets="2,2,2,2" rowspan="1" weightx="1.0" weighty="1.0"/>
</tr>
<tr>
<dropspot colspan="1" fill="both" insets="2,2,2,2" rowspan="1" weightx="1.0" weighty="1.0"/>
<dropspot colspan="1" fill="both" insets="2,2,2,2" rowspan="1" weightx="1.0" weighty="1.0"/>
</tr>
<tr>
<dropspot colspan="1" fill="both" insets="2,2,2,2" rowspan="1" weightx="1.0" weighty="1.0"/>
<dropspot colspan="1" fill="both" insets="2,2,2,2" rowspan="1" weightx="1.0" weighty="1.0"/>
</tr>
<tr>
<dropspot colspan="1" fill="both" insets="2,2,2,2" rowspan="1" weightx="1.0" weighty="1.0"/>
<dropspot colspan="1" fill="both" insets="2,2,2,2" rowspan="1" weightx="1.0" weighty="1.0"/>
</tr>
</table>
</abs>
The important/functional part of this is in the API block - we just call the functions defined in this API block whenever we want to load the value into our "info" parameter
//CALLING THIS WHENEVER YOU WANT TO RELOAD THE XML
function initXML()
{
//REPLACE THIS WITH A CALL TO PARSE YOUR ACTUAL XML DOCUMENT
var xml = ogscript.parseXML('<team name="NH2017"><squad><player ID="1" name="PLAYER NAME 1" owner="PLAYER OWNER 1"/><player ID="2" name="PLAYER NAME 2" owner="PLAYER OWNER 2"/></squad></team>');
ogscript.putObject("XMLDoc", xml);
}
//PROVIDE THE OID OF THE PARAMETER WITH THE "ID" AND THE OID OF THE PARAMETER WHOSE VALUE YOU'D LIKE TO FILL
function updateInfo(idOID, infoOID)
{
var xmlDoc = ogscript.getObject("XMLDoc"); //TRY TO GET THE XML DOCUMENT
if (xmlDoc == null)
{
params.setValue(infoOID, 0, "XML NOT LOADED");
}
var id = params.getValue(idOID, 0); //GET THE ID
var nodeList = ogscript.runXPath("/team/squad/player[@ID='" + id + "']", xmlDoc); //THIS IS AN XPATH COMMAND TO FIND PLAYERS WITH THE CORRECT ID LEARN MORE ABOUT XPATH AT https://www.w3schools.com/xml/xpath_intro.asp
if (nodeList != null && nodeList.getLength() > 0) //IF OUR XPATH COMMAND RETURNED RESULTS
{
var node = nodeList.item(0);
params.setValue(infoOID, 0, node.getAttribute("name") + " " + node.getAttribute("owner")); //FILL THE VALUE
}
else
{
params.setValue(infoOID, 0, "ID NOT FOUND");
}
}
initXML(); //RELOAD THE XML AT THE START TO MAKE SURE IT IS IN THE SYSTEM#DashBoard