Php XML SOAP保存到mySQL数据库
我有一个XML文件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
<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