簡體   English   中英

PHP轉換Mysql檢索XML數據

[英]PHP Convert Mysql retrived xml data

可以說我從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>

我如何將這個xml的每個部分存儲到自己的變量中? 我想把所有東西都存儲在

<message>
</message>

要存儲在$message ,我該怎么做?

使用適當的XML解析器可以穩定而輕松地提取XML文檔的任何部分。 這是一個使用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

輸出:

<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