『壹』 php 讀取xml格式的字元串
$strXml='<?xml version="1.0" encoding="utf-8" ?><responses code="200" msg="time: 0ms 971us"><response>法國</response><response>德國</response><response>中國</response><response>英國</response><response>泰國</response><response>美國</response><response>韓國</response><response>西蘭公國</response><response>中非共和國</response><response>韓國麗水-韓國</response></responses>';
$pos = strpos($strXml, 'xml');
if (!$pos) {
die("不是xml字元串!");
}
$obj=simplexml_load_string($strXml,'SimpleXMLElement', LIBXML_NOCDATA);
if(is_object($obj)){
$obj=get_object_vars($obj);
}
echo "<pre>";
print_r($obj);
另外記得文件一定要是utf-8編碼,如果不是記得用iconv函數轉一下。
『貳』 php輸出xml內容
PHP生成XML的方法很多,這里演示最基本,最簡單的字元串構造法。就是使用字元串構造或者拼接成xml數據格式,然後輸出或者生成xml文件。
<?php
$data=array(
array(
'title'=>'',
'country'=>'china',
'name'=>'網路',
),
array(
'title'=>'google',
'country'=>'usa',
'name'=>'谷歌',
)
);
//構造xml數據格式
$xml="<?xmlversion="1.0"encoding="utf-8"?> ";
$xml.="<data> ";
foreach($dataas$itm){
//循環構造xml單項
$item="<item> ";
$item.="<title>".$itm['title']."</title> ";
$item.="<country>".$itm['country']."</country> ";
$item.="<name>".$itm['name']."</name> ";
$item.="</item> ";
$xml.=$item;
}
$xml.="</data> ";
//輸出xml數據
echo$xml;
?>
生成的數據格式如下:
『叄』 php解析xml字元串
編寫示例代碼如下,經運行測試通過:
<?php
$xmlStr = <<<XML
<?xml version='1.0' encoding='UTF-8'?>
<ExportData>
<Body>
<Content>
<Id>1</Id>
<Name>Test01</Name>
<Point>40</Point>
</Content>
<Content>
<Id>2</Id>
<Name>Test02</Name>
<Point>80</Point>
</Content>
</Body>
</ExportData>
XML;
$xml = new SimpleXMLElement($xmlStr);
foreach($xml->Body->Content as $item){
echo 'ID: '.$item->Id."<br/>\n";
echo 'Name: '.$item->Name."<br/>\n";
echo 'Point: '.$item->Point."<br/><br/>\n";
}
?>
『肆』 如何將php返回的xml轉換成json數據
如果你使用 curl 獲取的 xml data
simplexml_load_string() 函數把 XML 字元串載入對象中。
$xml = simplexml_load_string($xmlStr);
$json = json_encode($xml);
如果是直接獲取 URL 數據的話
$xml = simplexml_load_file($data);
$json = json_encode($xml);
『伍』 php中將xml文件讀入一個字元串
試試看:
$content = file_get_contents($file);
echo str_replace('<','<',$content);
『陸』 php把xml轉換為字元串
樓主我教你吧,首先xml文件里的內容為
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<content
<name>lishi</name>
<age>17</age>
</content>
讀取xml文件內容
$str=file_get_contents($xml);$xml為xml文件路徑地址
將讀取的字元串內容轉化為xml對象
$obj=simplexml_load_string($str)
操作對象里的數據
$obj->name="lishi111";
$obj->age=77;
拼接新的字元串
$strNew="<?xml version='1.0' encoding='ISO-8859-1'?>";
$str.="<content><name>".$obj->name."</name";
$str.="<age>".$obj->age."</age></content>";
將新的字元串寫入xml文件
file_put_content($xml,$strNew);
最後一步拿分來吧,哈哈哈哈。有問題繼續。。。
『柒』 php 如何解析xml格式字元串
//假設xml字元串
$postStr = '<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[FromUser]]></FromUserName><CreateTime>123456789</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[p1]]></Content></xml>';
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
var_mp($postObj);
/**
object(SimpleXMLElement)[16] public 'ToUserName' => string 'toUser' (length=6) public 'FromUserName' => string 'FromUser' (length=8) public 'CreateTime' => string '123456789' (length=9) public 'MsgType' => string 'text' (length=4) public 'Content' => string 'p1' (length=2)
*/
//把xml字元串解析為對象
『捌』 php如何通過xml傳遞數據
獲取request中body的字元串數據,比如一個數組轉成xml後,你用post方式給伺服器發送xml的字元串,伺服器就用file_get_contents('php://input') 去讀取xml格式 然後轉成數組即可
『玖』 php將XML轉換成字元串!
$str = $xml->asXML();
$str就是你要的字元串
『拾』 php 執行操作XML文件錯誤..字元串轉XML
試了一下,可以正常解析了,可能是你的XML文本中有不可見的回車符之類.
你把你貼出來的代碼復製成一個新的.php文件,再試試看.