當前位置:首頁 » 編程語言 » php解析xml

php解析xml

發布時間: 2022-06-10 06:31:09

1. php 如何解析帶屬性的xml

<?php
//讀取xml
$dom=new DOMDocument('1.0');
$dom->load('data.xml');
$em=$dom->getElementsByTagName('videos');//最外層節點
$em=$em->item(0);
$items=$em->getElementsByTagName('video');//節點
//如果不用讀取直接添加的話把下面這一段去掉即可
foreach($items as $a){
foreach($a->attributes as $b){//$b->nodeValue;節點屬性的值$b->nodeName;節點屬性的名稱
echo $b->nodeName;
echo ":";
echo $b->nodeValue;
echo "<br/>";
}
}

2. 幾種php解析xml方式

最簡單的實用的:SimpleXML是PHP5後提供的一套簡單易用的xml工具集,可以把xml轉換成方便處理的對象,也可以組織生成xml數據。不過它不適用於包含namespace的xml,而且要保證xml格式完整(well-formed)。它提供了三個方法:simplexml_import_dom、simplexml_load_file、simplexml_load_string,函數名很直觀地說明了函數的作用。三個函數都返回SimpleXMLElement對象,數據的讀取/添加都是通過SimpleXMLElement操作
參數使用,可以參考手冊

3. php解析xml

.asmx的全程是ASMX Active Server Methods,.asmx 是WEB服務文件,asmx.cs里有相關代碼
屬於B/S形式,用SOAP方式HTTP訪問,用XML返回。

以下是 php語言 利用 soap調用.Net的WebService asmx文件

<?php
//php.ini中打開下面3個dll
//extension = php_soap.dll
//extension = php_curl.dll
//extension = php_openssl.dll
header("content-type:text/html;charset=utf-8");
$client = new SoapClient(" http://192.168.1.178:808/ChkWelePsw.asmx?WSDL");
//本行測試不可行 $client = new SoapClient(" http://192.168.1.178:808/chkwelepsw.asmx?WSDL/ChkWele?username=test3&psw=123");
//參數這樣傳遞 先包裝一下
$param = array('username'=>'test3','psw'=>'123');
//調用必須用__soapCall
$p = $client->__soapCall('ChkWele',array('parameters' => $param));
print_r($p->ChkWeleResult); //這里先輸出一下變數$p,看看是什麼類型。
?>

.NET部分 webservice要注意的地方
/*
* <system.web>在這個節點中加入如下內容
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</webServices>
*/
[WebMethod(Description = "This......", EnableSession = false)]
public string ChkWele(string username, string psw)
{
string ret = "";
return ret;
}

4. php 解析xml 的方法

$url =「給你介面的路徑";
$doms = simplexml_load_file ( $url );//直接把路徑放在simplexml_load_file 方法里就行$doms里存放的就是讀取的 XML 信息,你可以print_r($doms)試一下
然後用循環你就可以獲得 XML裡面的信息了
foreach ( $doms->節點名字 as $studys )
{
echo $studys."</br>";//輸入一下結果可以看一下
}
注意:simplexml_load_file ( $url )這個方法解析出來的中文只能是utf-8 如果你的項目使用的不是該編碼會出現中文亂碼,你可以用
iconv ( "UTF-8", "GB2312", 「這里放你要轉換的內容」);轉換能你用的編碼格式例如轉換成GB2312

5. 怎麼用php提取xml文件內容

創建一個以.xml結尾的文檔
內容如下:
<?xml
version="1.0"
encoding="utf-8"?>
<class>
<student
info="美女">
<name>小喬</name>
<sex>女</sex>
<age>20</age>
</student>
<student>
<name>周瑜</name>
<sex>男</sex>
<age>25</age>
</student>
<student>
<name>hsy</name>
<sex>男</sex>
<age>21</age>
</student>
</class>
創建以.php結尾的文件:代碼如下:
<?php
header('content-type:text/html;charset=utf-8');
//1、創建一個DOMDocument對象。該對象就表示
xml文件
$xmldoc
=
new
DOMDocument();
//2、載入xml文件(指定要解析哪個xml文件,此時dom樹節點就會載入到內存中)
$xmldoc->load("class.xml");
//3、目標:獲取第一個學生的名字
$stu
=
$xmldoc->getElementsByTagName("name");//直接找到節點name
$stu1
=
$stu->item(0);//
item(1)時,可以取到周瑜
$sex=$xmldoc->getElementsByTagName("sex");
$sex1=
$sex->item(0);
echo
$sex1->nodeValue;
echo
$stu1->nodeValue;
?>
結果顯示為:女小喬

6. 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字元串解析為對象

7. PHP怎麼解析微信支付結果返回的xml

php解析xml報文的方法是DOMDocument:
解析方法如下:

$xmlstring = <<<XML
<?xml version='1.0'?>
<document>
<cmd attr='default'>login</cmd>
<login>imdonkey</login>
</document>
XML;

$dom = new DOMDocument();
$dom->loadXML($xmlstring);
print_r(getArray($dom->documentElement));

function getArray($node) {
$array = false;

if ($node->hasAttributes()) {
foreach ($node->attributes as $attr) {
$array[$attr->nodeName] = $attr->nodeValue;
}
}

if ($node->hasChildNodes()) {
if ($node->childNodes->length == 1) {
$array[$node->firstChild->nodeName] = getArray($node->firstChild);
} else {
foreach ($node->childNodes as $childNode) {
if ($childNode->nodeType != XML_TEXT_NODE) {
$array[$childNode->nodeName][] = getArray($childNode);
}
}
}
} else {
return $node->nodeValue;
}
return $array;
}

8. php 解析xml

看著這些代碼,好厲害的樣子,程序員牛

9. php解析xml好像有很多種方法啊,有什麼區別

用原生的simplexml_load_string基本夠用
現在很多xml解析類就是處理了很多特殊的東西,就類似於strtoupper轉換大寫,遇到中文就會亂碼,所以也有人寫一些類來解決這個問題一樣的道理。

10. php解析xml問題

<?php
$xml='...xml數據此略...';
$eid='31037010'; //這是要查找的equip_id
$dom=new DOMDocument('1.0','utf-8');
@$dom->loadXML($xml);
$eids=$dom->getElementsByTagName('equip_id');
foreach($eids as $v){
if($v->nodeValue==$eid){
do{
if($v->nodeType==1){
$name=$v->tagName; //同級標簽名
$text=$v->nodeValue; //同級標簽值
print_r($name.'='.$text.'<br />');
}
}while($v=$v->nextSibling);
}
}
?>

熱點內容
存儲過程異常 發布:2024-05-05 23:24:03 瀏覽:397
winxp訪問不了win7 發布:2024-05-05 23:05:23 瀏覽:733
演算法牛 發布:2024-05-05 22:43:40 瀏覽:719
grublinux引導 發布:2024-05-05 22:37:56 瀏覽:215
unix高級編程第三版pdf 發布:2024-05-05 22:32:09 瀏覽:958
手機wap網站源碼 發布:2024-05-05 22:27:44 瀏覽:259
python修改文件某一行 發布:2024-05-05 22:18:22 瀏覽:457
md5加密64 發布:2024-05-05 21:59:30 瀏覽:527
259pp頁面訪問升級 發布:2024-05-05 21:47:51 瀏覽:89
迅雷阻止上傳 發布:2024-05-05 21:26:19 瀏覽:914