I want to create a jquery accordion dynamically by getting node names from the xml.
In the xml under product
domainmetadata will be only once and there are only 2 services at the moment CMS
and DIS
so 2 service types are available.
under service type (domainmetadata_service
) domainmetadata_service_optiongroup
and domainmetadata_optiongroup
can be many and only 1 domainmetadata_resourceinfo
So how can i have an accordion something like below structure
Health Check
Configuration
-System
-environment
-PRODUCT
-DOMAINMETADATA
-domainmetadata_gateways
-domainmetadata_gridinfo
-domainmetadata_service
-CMS
-domainmetadata_service_optiongroup
-domainmetadata_optiongroup
-domainmetadata_resourceinfo
-DIS
-domainmetadata_service_optiongroup
-domainmetadata_optiongroup
-domainmetadata_resourceinfo
Right now I am using Spry framework, which is giving me lots of trouble making the accordion dynamic. Click here to view the demo
My XML Response
<?xml-stylesheet type="text/xsl" href="csmclientinfa9.xsl"?><csmclient product="lolv9" date="11/4/11 4:36 PM" version="1.0"><system>
<environment>
<variable name='HOST' value='estilo' />
</environment>
</system>
<product>
<domainmetadata>
<domainmetadata_gateways nodename='N_1164898448' host='opera' httpport='18,448' port='18,449' />
<domainmetadata_gridinfo>Present</domainmetadata_gridinfo>
<domainmetadata_service type='ContentManagementService' name='CMS' version='' licenseName='license_all'>
<domainmetadata_serviceprocess node_name='N_1164898448' pre_start_command='null' post_start_command='null' jvm_options='' />
<domainmetadata_service_optiongroup name='AddressManagerOptions'>
<domainmetadata_option type='com.abc.isp.metadata.common.OptionType' name='FullPreLoadCountries' value='' />
<domainmetadata_option type='com.abc.isp.metadata.common.OptionType' name='PartialPreLoadCountries' value='' />
</domainmetadata_service_optiongroup>
<domainmetadata_optiongroup name='DataServiceOptions'>
<domainmetadata_option type='com.abc.isp.metadata.common.OptionType' name='DataServiceName' value='DIS' />
</domainmetadata_optiongroup>
<domainmetadata_resourceinfo>
<domainmetadata_resource type='Connection' name='Database:PWX DB2400' isAvailable='true' />
<domainmetadata_resource type='Connection' name='Application:SAP_ALE_IDoc_Reader' isAvailable='true' />
</domainmetadata_resourceinfo>
</domainmetadata_service>
<domainmetadata_service type='DataIntegrationService' name='DIS' version='' licenseName='license_all'>
<domainmetadata_serviceprocess node_name='N_1164898448' pre_start_command='null' post_start_command='null' jvm_options='' />
<domainmetadata_service_optiongroup name='SQLServiceOptions'>
<domainmetadata_option type='com.abc.isp.metadata.common.OptionType' name='MaxConcurrentConnections' value='100' />
<domainmetadata_option type='com.abc.isp.metadata.common.OptionType' name='MaxPlanCacheSize' value='100' />
</domainmetadata_service_optiongroup>
<domainmetadata_service_optiongroup name='CoreServiceOptions'>
<domainmetadata_option type='com.abc.isp.metadata.common.OptionType' name='ServicePort' value='0' />
<domainmetadata_option type='com.abc.isp.metadata.common.OptionType' name='JMXPort' value='0' />
</domainmetadata_service_optiongroup>
<domainmetadata_service_optiongroup name='LoggingOptions'>
<domainmetadata_option type='com.abc.isp.metadata.common.OptionType' name='LogDirectory' value='./disLogs' />
</domainmetadata_service_optiongroup>
<domainmetadata_resourceinfo>
<domainmetadata_resource type='Connection' name='Database:PWX DB2400' isAvailable='true' />
<domainmetadata_resource type='Connection' name='Application:SAP_ALE_IDoc_Reader' isAvailable='true' />
</domainmetadata_resourceinfo>
</domainmetadata_service>
</domainmetadata>
</product>
This is what I came up with
var infa9Spans='<span class="infa9span"><img src="/csm/view/include/images/foldericon.png"/><a id="infa9PMServer">PowerCenter Server</a><br/></span>';
$(xml).find("csmclient").each(function()
{
$(this).find('product').each(function(){
$(this).find('domainmetadata_service').each(function(){
var servicename=$(this).attr('name');
infa9Spans+='<span class="infa9span"><img src="/csm/view/include/images/foldericon.png"/><a id="infa9Service">'+servicename+'</a><br/></span>';
//var servicediv="<div title="+servicename+" class='class'>";
});
});
});
infa9Spans+='<span class="infa9span"><img src="/csm/view/include/images/foldericon.png"/><a id="infa9PWXServer">PowerExchange Server</a><br/></span>'+
'<span class="infa9span"><img src="/csm/view/include/images/foldericon.png"/><a id="infa9Oracle">Oracle</a><br/></span>'+
'<span class="infa9span"><img src="/csm/view/include/images/foldericon.png"/><a id="infa9DB2">DB2</a><br/></span>'+
'<span class="infa9span"><img src="/csm/view/include/images/foldericon.png"/><a id="infa9Sybase">Sybase</a><br/></span>'+
'<span class="infa9span"><img src="/csm/view/include/images/foldericon.png"/><a id="infa9Informix">Informix</a><br/></span>'+
'<span class="infa9span"><img src="/csm/view/include/images/foldericon.png"/><a id="infa9ODBC">ODBC</a><br/></span>'+
'<span class="infa9span"><img src="/csm/view/include/images/foldericon.png"/><a id="infa9Java">Java Version</a><br/></span>'+
'<span class="infa9span"><img src="/csm/view/include/images/foldericon.png"/><a id="infa9TomcatEnvvars">Tomcat Envvars.txt</a><br/></span>'+
'<span class="infa9span"><img src="/csm/view/include/images/foldericon.png"/><a id="infa9AD50">AD50.cfg</a><br/></span>';
var productSpans=infa9Spans;
$('#productAcc').append(productSpans);
customizeProductAccordion("infa9");