Cordys 对XML操作

前端之家收集整理的这篇文章主要介绍了Cordys 对XML操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


定义XML 数据:


<USER>
<ACCNAME>xiaoyw</ACCNAME>
<USERNAME>陈YY</USERNAME>
<ACCCODE>101</ACCCODE>
</USER>     
<TENANTUSER>
<U_TENANTACCOUNT>manager</U_TENANTACCOUNT>
<U_TENANTNAME>项目经理</U_TENANTNAME>
<U_TENANTDN>o=harbin,cn=cordys,cn=expense,o=HL.CHINAUNICOM.CN</U_TENANTDN>
</TENANTUSER>
<TENANTUSER>
<U_TENANTACCOUNT>programer</U_TENANTACCOUNT>
<U_TENANTNAME>程序员</U_TENANTNAME>
<U_TENANTDN>o=harbin,o=HL.CHINAUNICOM.CN</U_TENANTDN>
</TENANTUSER>

测试请求
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP:Body>
    <CreateUser xmlns="http://schemas.cordys.com/XiaoywWSAppServerPackage" preserveSpace="no" qAccess="0" qValues="">
      <v_user>
<USER>
<ACCNAME>xiaoyw</ACCNAME>
<USERNAME>陈YY</USERNAME>
<ACCCODE>101</ACCCODE>
</USER>     
<TENANTUSER>
<U_TENANTACCOUNT>manager</U_TENANTACCOUNT>
<U_TENANTNAME>项目经理</U_TENANTNAME>
<U_TENANTDN>o=harbin,o=HL.CHINAUNICOM.CN</U_TENANTDN>
</TENANTUSER>
</v_user>
    </CreateUser>
  </SOAP:Body>
</SOAP:Envelope>

Java 操作 XML


<pre name="code" class="java"> public static void createUser(int v_user)
{
		BSF.startTransaction();
		
		long acc_id =0;
        int accountXML = XPath.getFirstMatch("*[local-name()='USER']",null,v_user);
        String accountName = Node.getDataWithDefault(XPath.getFirstMatch("*[local-name()='ACCNAME']",accountXML),"");
        String userName = Node.getDataWithDefault(XPath.getFirstMatch("*[local-name()='USERNAME']","");
        String accountCode = Node.getDataWithDefault(XPath.getFirstMatch("*[local-name()='ACCCODE']","");
        sm_account ACCOUNT = new sm_account(BusObjectConfig.TRANSIENT);
        try 
		{
			ACCOUNT.setAcc_code(accountCode);
			ACCOUNT.setAcc_name(accountName);
			ACCOUNT.setUser_name(userName);
			ACCOUNT.setIs_admin((short)0);
			ACCOUNT.insert();
		
			BSF.commitTransaction();
		} catch (Exception e) 
		{
			e.printStackTrace();
			
			BSF.abortTransaction();
			return;
		} 
		finally
		{
			if (accountXML != 0)
			{
				Node.delete(accountXML);
				accountXML = 0;
			}
		}       

        acc_id = ACCOUNT.getAcc_id();
 
		BSF.startTransaction();
        sm_auth_account AUTH_ACC = new sm_auth_account(BusObjectConfig.TRANSIENT);      
        
        try 
		{
			AUTH_ACC.setAcc_id(acc_id);
			AUTH_ACC.setAuth_account(accountName);
			AUTH_ACC.insert();
			BSF.commitTransaction();
    
		} catch (Exception e) 
		{
			e.printStackTrace();
			BSF.abortTransaction();
			return;
		}
        
			int[] usersXML = XPath.getMatchingNodes("*[local-name()='TENANTUSER']",v_user);
            for(int userXML:usersXML)
            {
				
			BSF.startTransaction();
            sm_tenant_account Tenant_Account = new sm_tenant_account(BusObjectConfig.TRANSIENT);
            Tenant_Account.setAcc_id(acc_id);
            Tenant_Account.setTenant_account(Node.getDataWithDefault(XPath.getFirstMatch("*[local-name()='U_TENANTACCOUNT']",userXML),""));
            Tenant_Account.setTenant_name(Node.getDataWithDefault(XPath.getFirstMatch("*[local-name()='U_TENANTNAME']",""));
            Tenant_Account.setTenant_dn(Node.getDataWithDefault(XPath.getFirstMatch("*[local-name()='U_TENANTDN']",""));
            Tenant_Account.setTenant_code("99");
            Tenant_Account.setOrg_id(8);
            Tenant_Account.setIs_default((short)0);
            Tenant_Account.setStatus_sign((short)1);
            try
			{
				Tenant_Account.insert();
				BSF.commitTransaction();
			} catch (Exception e) {
				e.printStackTrace();
				BSF.abortTransaction();
				return;
			}finally 
			{
				if (userXML != 0)
				{
					Node.delete(userXML);
				userXML = 0;
				}
			}
             
          }
}

猜你在找的XML相关文章