网站首页 > 文章中心 > 其它

php解析xml数据

作者:小编 更新时间:2023-09-20 15:35:41 浏览量:439人看过

php 解析xml

亲手打的,经过测试的,采纳吧

php

$result = simplexml_load_string($xml);

//var_dump($result); //可以打印看看结果如何

$result = object_to_array($result);

//print_r($result['list']['video']);exit;

foreach($result['list']['video'] as $key=$v){

echo $key."=".$v."\n";

}

function object_to_array($obj){

$arr = array();

$_arr = is_object($obj)? get_object_vars($obj) :$obj;

foreach ($_arr as $key = $val){

$val=(is_array($val)) || is_object($val) ? object_to_array($val) :$val;

$arr[$key] = $val;

return $arr;

读取php文件中的xml内容

%

dim xml,objNode,objAtr,nCntChd,nCntAtr

Set xml=Server.CreateObject("Microsoft.XMLDOM")

xml.Async=False

xml.Load(Server.MapPath("test.xml"))

Set objNode=xml.documentElement

nCntChd=objNode.ChildNodes.length-1

'这个可以定义asp读取xml文件的那一个值,通过传递这个值来确定读取的数据

for i=0 to nCntChd

set objAtr=objNode.ChildNodes.item(i)

nCntAtr=objAtr.Attributes.length-1

'历遍一条记录里面的所有的记录项,记录是从0开始的

for j=0 to nCntAtr

response.write objAtr.Attributes.item(j).Text"br"

next

response.write "br"

Set objAtr=Nothing

Set objNode=Nothing

Set xml=Nothing

php 如何获取XML 并转成2维数组

/**

* 功能:解析xml数据转换成二维数组

*

* @param string $dataXml

* @return array

*/

public static function getXmlData ( $strXml ) {

$pos = strpos($strXml, 'xml');

if ($pos) {

$xmlCode =simplexml_load_string($strXml,'SimpleXMLElement', LIBXML_NOCDATA);

$arrayCode=self::get_object_vars_final($xmlCode);

return $arrayCode ;

} else {

return '';

PHP怎么解析微信支付结果返回的xml

PHP解析微信支付结果返回的xml的方法是通过自定义方法和第三方组件DomDocument实现的.

①.、解析代码如下:

PHP

$url = "";

// 加载XML内容

$content = file_get_contents($url);

$dom = DOMDocument::loadXML($content);

/*

此处也可使用如下所示的代码,

$dom = new DOMDocument();

$dom-load($url);

$elements = $dom-getElementsByTagName("current_conditions");

$element = $elements-item(0);

$condition = get_google_xml_data($element, "condition");

$temp_c = get_google_xml_data($element, "temp_c");

echo '天气:', $condition, 'br /';

echo '温度:', $temp_c, 'br /';

function get_google_xml_data($element, $tagname) {

$tags = $element-getElementsByTagName($tagname); // 取得所有的$tagname

if ($items-length 1) {

return $items;

$tag = $tags-item(0); // 获取第一个以$tagname命名的标签

if ($tag-hasAttributes()) { // 获取data属性

$attribute = $tag-getAttribute("data");

return $attribute;

}else {

return false;

xml version="1.0"?

xml_api_reply version="1"

weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0"

forecast_information

city data="Shenzhen, Guangdong"/

postal_code data="shenzhen"/

unit_system data="US"/

/forecast_information

current_conditions

condition data="Sunny"/

icon data="/ig/images/weather/sunny.gif"/

wind_condition data="Wind: mph"/

/current_conditions

/weather

/xml_api_reply

print $html;

php 如何解析带属性的xml

//读取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/";

关于PHP解析XML文件的..

朋友,你不能在dom操作里边用数组的方法直接调用属性和vlaue

推荐你看下dom手册和php手册,当然如有需要我可以给你发一份到邮箱

你可以用dom的操作来读取

$doc=new DOMDocument();

$doc-load("liuyan.xml");

$liuyan=$doc-getElementsByTagName("line");

foreach($liuyan as $ly)

{

$id=$ly-getAttribute("id");

$nicker=$ly-getElementsByTagName("nicker");

$nicker=$nicker-item(0)-nodeValue;

$email=$ly-getElementsByTagName("email");

$email=$email-item(0)-nodeValue;

$url=$ly-getElementsByTagName("url");

$url=$url-item(0)-nodeValue;

$content=$ly-getElementsByTagName("content");

$content=$content-item(0)-nodeValue;

$creatime=$ly-getElementsByTagName("create");

$creatime=$creatime-item(0)-nodeValue;

//$creatime=date("Y-m-j",$creatime);

// echo "nicker:".$nicker."email:".$email."url:".$url."content:".$content;

dom文档

DOMDocument对象常用方法:

a)createElement(elementName) ---- 该方法以元素名为参数创建一个用此参数命名的元素节点.(不能创建名称空间受限制的元素.如果要创建名称空间受限制的元素,必须使用createNode()方法)

例: doc.createElement("PRODUCT"),有些用到:doc- creatElement('item')

b)createAttribute(attributeName) ---- 该方法以属性名为参数创建一个用此参数命名的属性节点.

例: doc.createAttribute("PRODID")

c)createComment(text) ---- 该方法以字符串为参数创建一个包含此字符串的注释节点.

例: doc.createComment("This is an XML document")

d)createTextNode(text) ---- 该方法以字符串为参数创建一个包含指定字符串的正文节点.

例: doc.createTextNode("Sony Workman")

e)createNode(type,name,namespace-URI) ---- 该方法创建元素节点.三个参数,"类型"参数是variant型,既可以是字符串也可以是整型.第二个参数是字符串,它代表将要创建的节点的名字.第三个参数是代表namespace-URI的字符串.如果namespace-URI为空字符串,则新创建的节点就没有名称空间URI

例: doc.createNode("element","PRODUCT","")

doc.createNode(1,"PRODUCT","")

f)getElementsByTagName(elementName) ---- 该方法以字符串为参数.这个字符串是要搜索的元素.返回IXMLDOMNodeList对象,包含指定元素名称的节点的集合.可以用这些节点信来浏览操纵存储在指定元素中的值.

例: doc.getEelmentsByTagName("PRICE")

g)load(XMLdocument) ---- 该方法以字符串为参数.这个字符串是XML文档的地址(HTTP地址或本地地址)

例: doc.load("")

doc.load("D:\product.xml")

h)loadXML(string) ---- 该方法把成形的XML代码或整个XML文档载入DOMDocument对象中.

例: doc.loadXML("?xml version=1.0PRODUCTSPRODUCTnameBarbie Doll/name/PRODUCT/PRODUCTS")

i)transformNode(stylesheet object) ---- 该方法以风格表对象为参数.通过把相应的风格表加到XML文档上来处理节点,然后返回转换结果.

例: doc.transformNode("product.xsl")

j)appendChild(child node) ---- 该方法以对象为参数.把这个对象作为最后的子节点加在XML文档上.createNode() 或者 createElement()方法可以创建节点或元素.但是它们不会把新建的节点加到文档树形结构上.而是需要用appendChild()方法,insertBefore()方法,或者replaceChild()方法把新建的节点加上去.

例: doc.appendChild(root) ---- PS: root是一个用createNode()或createElement()方法创建的节点

k)save(destination) ---- 该方法以对象为参数.这个对象可以是一个DOMDocument对象也可以是一个文件名.save()方法把DOMDocument对象保存在指定的目的地.

例: doc.save("")

* DOMDocument对象常用属性:

a)async ---- 该属性用来指定是否允许异步加载.属性async取布尔值.

例: doc.async = false --同步

b)childNodes ---- 该属性返回属于一个父节点的子节点集合(即返回当前元素所有子元素的数组对象).该属性的值是对象IXMLDOMNodeList的类型.

例: var firstelem = doc.childNodes.item(0)

c)documentElement ---- 该属性包含用对象DOMDocument表示的XML文档的根元素.

例: var root = doc.documentElement

d)firstChild ---- 该属性返回父元素的第一个子节点.该元素是只读的.

例: var firstelem = doc.firstChild

e)lastChild ---- 该属性返回父元素的最后一个子节点.

例: var lastelem = doc.lastChild

f)parseError ---- 该属性返回一个包含大部分最近产生的错误信息的对象.

例: var error = doc.parseError

例: var stateInfo = doc.readState

// Coding

h)xml ---- 该属性返回一个节点以有其子节点的XML表示.

例: document.write(doc.xml)

i)validateOnParse ---- 该属性指定解析器是否在解析XML文档时验证其合法性.

例: doc.validateOnParse = true

以上就是土嘎嘎小编为大家整理的php解析xml数据相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章