Php XML SOAP保存到mySQL数据库

Php XML SOAP保存到mySQL数据库,php,mysql,xml,codeigniter,xml-parsing,Php,Mysql,Xml,Codeigniter,Xml Parsing,我有一个XML文件 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header /> <s:Body> <GetAllItemCategoryResponse xmlns="http://tempuri.org/"> <GetAllItemCategoryResult xmlns:a="http://schemas.da

我有一个XML文件

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header />
   <s:Body>
     <GetAllItemCategoryResponse xmlns="http://tempuri.org/">
       <GetAllItemCategoryResult xmlns:a="http://schemas.datacontract.org/2004/07/HQService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
         <a:ItemsCategory>
         <a:Code>prov</a:Code>
         <a:Description>Te Fresketa</a:Description>
         <a:LastModifiedDate>0001-01-01T00:00:00</a:LastModifiedDate>
         <a:active>true</a:active>
         </a:ItemsCategory>       
       </GetAllItemCategoryResult>
     </GetAllItemCategoryResponse>
   </s:Body>
 </s:Envelope>

有什么帮助吗?

关于保存到数据库或访问XML中的元素,您有什么问题吗

我怀疑后一种情况是这样的,而名称空间正在把你抛弃

请参见以下示例,该示例从SOAP响应访问元素:

$xml = file_get_contents(realpath(APPPATH . '../public/').'/'.$_FILES['userfile']['name']); 
$doc = simplexml_load_string($xml,NULL,false, "http://schemas.xmlsoap.org/soap/envelope/");
$doc->registerXPathNamespace('a', 'http://schemas.datacontract.org/2004/07/HQService');


foreach ($doc->xpath('//a:ItemsCategory') as $category) {
    foreach ($category->children('http://schemas.datacontract.org/2004/07/HQService') as $child) {
        echo $child->getName() . ":" . (string)$child . "\n";
    }
}
这将产生以下结果:

Code:prov
Description:Te Fresketa
LastModifiedDate:0001-01-01T00:00:00
active:true
之后,只需将其保存到数据库即可。希望这有帮助

Code:prov
Description:Te Fresketa
LastModifiedDate:0001-01-01T00:00:00
active:true