phpxml
① 使用php循環出xml中多個相同重復的標簽
重復的 xml 元素節點可以用 foreach 循環取出重復元素。
示例:
// $xmlData = file_get_contents('items.xml');
$xmlElement=simplexml_load_string($xmlData, 'SimpleXMLElement', 'LIBXML_NOCDATA');
$elements = $xmlElement->CustAcctId;
foreach ($elements as $element) {
var_mp($element);
}
提示:使用simplexml_load_string($xmlString, 'SimpleXMLElement', LIBXML_NOCDATA) 解析 xml 字元串,如果是 xml 文件,可以 file_get_contents 讀取文件。
② php將XML轉換成字元串!
$str = $xml->asXML();
$str就是你要的字元串
③ PHP的xml操作問題
具體沒注意過..~-~我也看看
④ 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有什麼用
這個很有用,比如開發一個介面,這個介面互相傳送的數據可以用xml格式的數據。 例如新浪微波提供的介面返回形式就有xml格式的數據。 還有比如php和其他語言(c++)互相通信 ,也是選擇xml格式的數據進行通信。這樣我們獲取了xml格式的數據後呢,當然還需要php進行解析 分離 將這些xml數據展示得到我們想要的網頁上或者編程自己想要的格式保存到自己的資料庫。等等吧! 應用很多對我一般都是用到這些了。
⑥ 如何用php把xml中的url標簽全部變成<img>標簽
<?php
/*
描述:將xml文檔格式化成一個數組,讓你用訪問數組的方式來訪問xml文檔的各個節點,(爽的要死,嘎嘎!)
@xml: 傳進去的xml格式的字元串(自己驗證一下xml格式要標准)
@return : 返回一個數組
*/
function xml2array($xml) {
$xmlary = array();
$reels = '/<(\w+)\s*([^\/>]*)\s*(?:\/>|>(.*)<\/\s*\\1\s*>)/s';
$reattrs = '/(\w+)=(?:"|\')([^"\']*)(:?"|\')/';
preg_match_all($reels, $xml, $elements);
foreach ($elements[1] as $ie => $xx) {
$xmlary[$ie]["name"] = $elements[1][$ie];
if ($attributes = trim($elements[2][$ie])) {
preg_match_all($reattrs, $attributes, $att);
foreach ($att[1] as $ia => $xx)
$xmlary[$ie]["attributes"][$att[1][$ia]] = $att[2][$ia];
}
$cdend = strpos($elements[3][$ie], "<");
if ($cdend > 0) {
$xmlary[$ie]["text"] = substr($elements[3][$ie], 0, $cdend - 1);
}
if (preg_match($reels, $elements[3][$ie]))
$xmlary[$ie]["elements"] = xml2array($elements[3][$ie]);
else if ($elements[3][$ie]) {
$xmlary[$ie]["text"] = $elements[3][$ie];
}
}
return $xmlary;
}
$ary = xml2array(file_get_contents('http://www.google.com/ig/api?weather=beijing'));
echo "<pre>";
print_r($ary);
echo "</pre>";
?>
⑦ 讀資料庫之後循環生成XML的PHP怎麼寫
我的思路是,直接使用動態的xml,讓flash讀取這個文檔,這樣就不用實時的去生成xml文件了。當然,這個xml文件是.php格式的,所以你必須在flash中吧讀取的文件地址改成php的,就跟你寫一個php頁面一樣,不同的是這個php文件輸出的內容是一個xml格式的文本。
比如你現在建立文件 xml.php
<?php
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<gallery>
<settings>";
//若此處也有動態信息 按需要進行調用
echo"</settings>
<items>";
//在此循環你的圖片數據
$data = ??
while( $data ) {
echo "<item source=\"".$data['source']."\" description=\"".$data['description']."\" />";
}
echo '</items>';
?>
⑧ php獲取xml頁面的問題
$xml = @simplexml_load_file('8888.xml');
$attr=findAttribute($xml->admin_total->variable_total,'totalman');
echo $attr.'<br/>';
function findAttribute($object, $attribute) {
foreach($object->attributes() as $a => $b) {
if ($a == $attribute) {
$return = $b;
}
}
if($return) {
return $return;
}
}
前邊只是例子,
你要得到node的所有屬性就可以遍歷下
foreach($xml->admin_total->variable_total->attributes() as $a => $b) {
echo $a,'="',$b,"\"\n";
}
詳情請查看手冊simplexml_load_file
SimpleXMLElement
⑨ php xml亂碼
出錯的原因在於你的PHP程序輸出的編碼和XML文件的編碼不一致造成的!
想使用utf-8編碼的話,對於你的程序,修改方法如下:
一.把兩個gb2312改為utf-8
二.在xml文件上點右鏈,選擇用記事本打開,另存為,編碼由ansi改為utf8,覆蓋保存。
搞定