本文目錄一覽:
- 1、getelementsbytagname,Php怎麼讀取xml中指定節點的指定名稱的屬
- 2、php 獲取xml某個節點的所有內容
- 3、php 讀取 xml 文件屬性值的問題
- 4、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;
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/185886.html