简体   繁体   English

PHP转换Mysql检索XML数据

[英]PHP Convert Mysql retrived xml data

lets say that i get this data from a mysql table and it is stored in variable $xmlFromMysqlRow 可以说我从mysql表中获取此数据,并将其存储在变量$xmlFromMysqlRow

<?xml version="1.0" encoding="utf-8"?>
<GridInstantMessage xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <fromAgentID>d8445b4a-4ed0-4449-bf33-7709443f7f84</fromAgentID>
   <fromAgentName>FABIODK TOPAZ</fromAgentName>
   <toAgentID>70d0f6b8-237d-4863-9aef-96e2c93d5130</toAgentID>
   <dialog>32</dialog>
   <fromGroup>true</fromGroup>
   <message>festa|SPLODERS E PREMIOS PRAS 3  MELHORES ROUPAS, O SPLODER MAIOR VAI ESTAR COM 500 AV$ FIXOS AT� O FIM DA FESTA.
      A PARTIR DAS 20:00 HORAS.
   </message>
   <imSessionID>94809bcd-39c3-4e4d-8405-8829a00ba8ea</imSessionID>
   <offline>0</offline>
   <Position>
      <X>0</X>
      <Y>0</Y>
      <Z>0</Z>
   </Position>
   <binaryBucket>AADYRFtKTtBESb8zdwlEP3+EAA==</binaryBucket>
   <ParentEstateID>0</ParentEstateID>
   <RegionID>00000000-0000-0000-0000-000000000000</RegionID>
   <timestamp>1437412707</timestamp>
</GridInstantMessage>

How would i get each section of this xml stored into there own varables? 我如何将这个xml的每个部分存储到自己的变量中? ex i want everything stored in 我想把所有东西都存储在

<message>
</message>

to be stored in $message how would i do this? 要存储在$message ,我该怎么做?

Use a proper XML parser to robustly and easily extract any part of an XML document. 使用适当的XML解析器可以稳定而轻松地提取XML文档的任何部分。 This is one example using SimpleXML : 这是一个使用SimpleXML示例:

$string = <<<XML
<GridInstantMessage xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <fromAgentID>d8445b4a-4ed0-4449-bf33-7709443f7f84</fromAgentID>
   <fromAgentName>FABIODK TOPAZ</fromAgentName>
   <toAgentID>70d0f6b8-237d-4863-9aef-96e2c93d5130</toAgentID>
   <dialog>32</dialog>
   <fromGroup>true</fromGroup>
   <message>festa|SPLODERS E PREMIOS PRAS 3  MELHORES ROUPAS, O SPLODER MAIOR VAI ESTAR COM 500 AV$ FIXOS AT� O FIM DA FESTA.
      A PARTIR DAS 20:00 HORAS.
   </message>
   <imSessionID>94809bcd-39c3-4e4d-8405-8829a00ba8ea</imSessionID>
   <offline>0</offline>
   <Position>
      <X>0</X>
      <Y>0</Y>
      <Z>0</Z>
   </Position>
   <binaryBucket>AADYRFtKTtBESb8zdwlEP3+EAA==</binaryBucket>
   <ParentEstateID>0</ParentEstateID>
   <RegionID>00000000-0000-0000-0000-000000000000</RegionID>
   <timestamp>1437412707</timestamp>
</GridInstantMessage>
XML;
$xml = new SimpleXMLElement($string);
$message = $xml->xpath("//message")[0]->asXML();
echo $message;

eval.in demo

output : 输出:

<message>festa|SPLODERS E PREMIOS PRAS 3  MELHORES ROUPAS, O SPLODER MAIOR VAI ESTAR COM 500 AV$ FIXOS AT� O FIM DA FESTA.
      A PARTIR DAS 20:00 HORAS.
   </message>
preg_match('#<message>(.*?)</message>#sui', $xmlFromMysqlRow, $message);
$message = $message[1];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM