Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对来自不同产品的XML文件进行通用解析_Php_Xml Parsing - Fatal编程技术网

Php 对来自不同产品的XML文件进行通用解析

Php 对来自不同产品的XML文件进行通用解析,php,xml-parsing,Php,Xml Parsing,我正在创建一个web应用程序。此应用程序用于电子商务网站的订单履行。现在,电子商务是IBMWebSphere。我首先使用Websphere公开的Web服务从Websphere导入订单,并对其进行解析并将其存储到DB中。现在,他们已经要求推广这种解析方法,以便明天如果他们也使用其他电子商务产品,比如prestashop,它应该能够应付。我需要一些关于如何进行的想法,以及我可以保留哪些东西作为可配置选项,以便将来不会产生问题。查看设计模式:一种解决方案可以是使用: 创建一个全局“通用”接口。然后为需

我正在创建一个web应用程序。此应用程序用于电子商务网站的订单履行。现在,电子商务是IBMWebSphere。我首先使用Websphere公开的Web服务从Websphere导入订单,并对其进行解析并将其存储到DB中。现在,他们已经要求推广这种解析方法,以便明天如果他们也使用其他电子商务产品,比如prestashop,它应该能够应付。我需要一些关于如何进行的想法,以及我可以保留哪些东西作为可配置选项,以便将来不会产生问题。

查看
设计模式
:一种解决方案可以是使用:

创建一个全局“通用”接口。然后为需要支持的每个电子商务创建一个适配器。例如,现在您将有一个适配器:

public class IBMImportAdapter : IECommerce
{
     private IBMECommerce _ibmInstance;

     public IBMImportAdapter(IBMECommerce instance) {
         _ibmInstance = instance;
     }

     public IEnumerable<Product> GetInput() {
         IEnumerable<IBMProduct> ibmProducts = _ibmInstance.TheirGetInput();
         List<Product> products = new List<Product>();
         foreach (IBMProduct p in ibmProducts) {
             products.Add(new Product(p.ID, p.Name);
         }
         return products;
     }
}
公共类IBMImportAdapter:IECommerce
{
私人IBMECommerce_ibmInstance;
公共IBMImportAdapter(IBMCommerce实例){
_ibmInstance=实例;
}
公共IEnumerable GetInput(){
IEnumerable ibmProducts=_ibminInstance.TheTargetInput();
列表产品=新列表();
foreach(ibmProducts中的IBMProduct p){
产品。添加(新产品(p.ID,p.Name);
}
退货产品;
}
}
然后,这些适配器将自己的接口映射到您的全局/通用接口(在您的情况下,这可能与IBM电子商务接口差不多,但去掉了所有IBM依赖项)

另一种选择是将“导入算法”封装到一个数据库中