您的位置:

php读取xml节点有关问题,php解析xml数据

本文目录一览:

getelementsbytagname,Php怎么读取xml中指定节点的指定名称的属

首先,你的xml文件,缺少root元素,version后边没有"结尾。

然后是你解析的思路是:

先用simplexml_load_string或者$xml = simplexml_load_file('test.xml');

,读取xml,然后用get_object_vars,转成数组,然后根据数组,找出对应关系,或者在生成数组的时候直接写成‘lisan’='no';这个关系。简单点就是直接读成数组,然后遍历,找到对应的值之间的关系就OK

用到的函数:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

function getXmlData ($strXml) {

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

if ($pos) {

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

$arrayCode=get_object_vars_final($xmlCode);

return $arrayCode ;

} else {

return '';

}

}

function get_object_vars_final ($obj)

{

if (is_object($obj)) {

$obj = get_object_vars($obj);

}

if (is_array($obj)) {

foreach ($obj as $key = $value) {

$obj[$key] = get_object_vars_final($value);

}

}

return $obj;

}

php 获取xml某个节点的所有内容

php是可以读取读取xml文件的。同时也可以遍历节点。网上有很多方法。你可以百度下。这里给你贴代码的话有很多代码。

举例: 有个名字为a.xml的文件 。内容为:

?xml version=”1.0″ encoding=”gb2312″?

xml

list111/list

list2222/list

list3333/list

/xml

读取:

?php

$xml = new DOMDocument();

$xml-load('a.xml');

foreach($xml-getElementsByTagName('list') as $list)

{

$value = $list-firstChild-nodeValue;

echo $value.”br /”;

}

?

输出为:111

222

333

php 读取 xml 文件属性值的问题

粗略看了看你的conf.xml文件,第一个message节点没有闭合;

获取某个元素的值,或者属性值很多,不知道你具体的需求。

示例如下:

?php

//加载xml文件

$test=simplexml_load_file("conf.xml");

//取出所有信息

$messages=$test-message;

//取出第二个message节点的所有的第二个property节点

$property2=$messages[1]-property[1];

echo $property2["name"]." = ".$property2;

//取出第二个message节点的所有的第三个property节点

$property3=$messages[1]-property[2];

echo "br/";

echo $property3["name"]." = ".$property3;

?

PHP读取XML节点问题

假定这个xml是一个字串 $xml

$xml = new SimpleXMLElement($xml);

$autoPlay = $xml-attributes()-autoPlay;

$autoNextSong = $xml-attributes()-autoNextSong;

这样你获取的会是两个对象, 如果需要用来做某些特定的事情, 比如显示

echo (string)$autoPlay;