很多站长朋友们都不太清楚php解析xml参数,今天小编就来给大家整理php解析xml参数,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP怎么解析微信支付结果返回的xml 2、 php怎么解析从网页中获取的xml数据 3、 php如何解析多级xml报文? PHP怎么解析微信支付结果返回的xmlphp解析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;
}
php怎么解析从网页中获取的xml数据先给你个以前写的读取xml格式的天气预报的代码吧,比着葫芦画瓢,不懂再追问
<?php
$apistr=file_get_contents(";ak=B8aced94da0b345579f481a1294c9094"); //获取xml内容
$apiobj=simplexml_load_string($apistr);//解析xml代码
$todayobj=$apiobj->results->result[0]->date;//读取星期
$weatherobj=$apiobj->results->result[0]->weather;//读取天气
$windobj=$apiobj->results->result[0]->wind;//读取风力
$temobj=$apiobj->results->result[0]->temperature;//读取温度
$contentStr = "上海\n{$todayobj}\n天气:{$weatherobj}\n风力:{$windobj}\n温度:{$temobj}";
echo $contentStr;
?>
php如何解析多级xml报文?看了一下xml结构,感觉该代码不是完整版,看到你用 simplexml_load_string 和 loadXML来解析,这2个肯定解析,但是不推荐,如果xml结构多且复杂解析效率会很低,推荐用xml_parser_create实现,这个效率要快很多。
根据你贴的 xml,发现是xml里嵌套xml,我的思路是先解析出第一层的xml数据集,第一次层的xml数据集其实也就是你待解析的xml,采用循环逐个再次解析即可得到你想要的数据了,贴上我在其他项目中用xml_parser_create的代码供你参考。
private function parseXml($xml, $fileName)
{
$p = xml_parser_create();
xml_parse_into_struct($p, $xml, $vals, $index);
xml_parser_free($p);
$cnt = count($index['URL']);
$xmlData = [];
for ($i = 0; $i < $cnt; $i++) {
$data = [];
$data['url'] = $vals[$index['URL'][$i]]['value'];
$data['title'] = $vals[$index['TITLE'][$i]]['value'];
$data['file'] = $fileName;
$xmlData[] = $data;
}
return $xmlData;
}
关于php解析xml参数的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php解析xml参数 php处理接收的xml的详细内容...