demo.xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<root>
<name value="23">11111</name>
<pro>
<proId>1</proId>
<proId>2</proId>
<proId>3</proId>
</pro>
<pro>
<proId>11</proId>
<proId>22</proId>
<proId>33</proId>
</pro>
</root>解析xml节点代码如下:
<?php
//首先要建一个DOMDocument对象
$xml=new DOMDocument('1.0','UTF-8');
//加载Xml文件
$xml->load('demo.xml');
$name=$xml->getElementsByTagName("name");
$name = $name->item(0)->nodeValue;
$result = array();
$proList = array();
$pro=$xml->getElementsByTagName("pro");
foreach($pro as $p){
$proId=$p->getElementsByTagName("proId");
$i=0;
foreach($proId as $v){
$id = $v->nodeValue;
//$proList[$i]=$id;
$proList[$i]=$id;
$i++;
}
array_push($result,$proList);
}
print_r($result);
报错:Warning: DOMDocument::load() [domdocument.load]: XML declaration allowed only at the start of the document in file:///D:/Program%20Files/Apache%20Software%20Foundation/Apache2.2/htdocs/MyPhpWeb/demo.xml, line: 2 in D:\Program Files\Apache Software Foundation\Apache2.2\htdocs\MyPhpWeb\readxml.php on line 7
Array ( )
不知道为什么会 报这个错 忘高手解答! thanks
?>
Array ( )
这个报错的信息!
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[1] => Array
(
[0] => 11
[1] => 22
[2] => 33
)
)
可能是路径名或权限引起的问题
$xml = new DOMDocument('1.0','gbk');
$xml->load('demo.xml');
$name = $xml->getElementsByTagName("name");
$name = $name->item(0)->nodeValue;$result = $proList = array();
$pro = $xml->getElementsByTagName("pro");
foreach($pro as $p){
$proId = $p->getElementsByTagName("proId");
$i = 0;
foreach($proId as $v){
$id = $v->nodeValue;
$proList[$i] = $id;
$i++;
}
array_push($result,$proList);
}
print_r($result);
?>
//Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [1] => Array ( [0] => 11 [1] => 22 [2] => 33 ) )
把代码内的这句$name = $name->item(0)->nodeValue; 改成
$name = $name->firstChild->nodeValue; 试试看
<proId>1</proId>
<proId>2</proId>
<proId>3</proId>
</pro>如何获取title