xml文件是:<v time="180530" vi="1" ch="29" nls="0" title="监控实拍" code="qT4j-61ws-Q" enable="1" logo="0" wt="0" band="0">
<a>
<f w="51" h="0" sha1="f04644" size="6012028" brt="2">
http://114.80.235.12
</f>
<f w="31" h="0" sha1="f0464" size="6012028" brt="2">
http://114.80.236.202
</f>
</a>
<b/>
</v>
<!-- pageview_candidate -->我的php代码是这样写的,但读不到。谢谢了//2.读xml
$xml_array=simplexml_load_file("wc.xml"); //将XML中的数据,读取到数组对象中
foreach($xml_array AS $temp){
echo "<pre>";
print_r($temp->f);
echo "</pre>";
}
我的目的是要读中间的那个二个http地址。谢谢了。
<a>
<f w="51" h="0" sha1="f04644" size="6012028" brt="2">
http://114.80.235.12
</f>
<f w="31" h="0" sha1="f0464" size="6012028" brt="2">
http://114.80.236.202
</f>
</a>
<b/>
</v>
<!-- pageview_candidate -->我的php代码是这样写的,但读不到。谢谢了//2.读xml
$xml_array=simplexml_load_file("wc.xml"); //将XML中的数据,读取到数组对象中
foreach($xml_array AS $temp){
echo "<pre>";
print_r($temp->f);
echo "</pre>";
}
我的目的是要读中间的那个二个http地址。谢谢了。
<v time="180530" vi="1" ch="29" nls="0" title="监控实拍" code="qT4j-61ws-Q" enable="1" logo="0" wt="0" band="0">
<a>
<f w="51" h="0" sha1="f04644" size="6012028" brt="2">
http://114.80.235.12
</f>
<f w="31" h="0" sha1="f0464" size="6012028" brt="2">
http://114.80.236.202
</f>
</a>
<b/>
</v>
XML;$xml = simplexml_load_string($s);
//正常遍历,需要确切的知道目标节点所在层次
foreach($xml AS $temp){
foreach($temp->f as $v) echo "$v<br";
}
//xpath 查询
foreach($xml->xpath('//f') as $v) echo "$v<br>";均可得到
http://114.80.235.12
http://114.80.236.202
(
[@attributes] => Array
(
[time] => 180530
[vi] => 1
[ch] => 29
[nls] => 0
[title] => 监控实拍
[code] => qT4j-61ws-Q
[enable] => 1
[logo] => 0
[wt] => 0
[band] => 0
) [a] => SimpleXMLElement Object
(
[f] => Array
(
[0] =>
http://114.80.235.12 [1] =>
http://114.80.236.202 ) ) [b] => SimpleXMLElement Object
(
))
这样的结构,依此书写代码是很容易的。不再赘述XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。
你搜索 xpath 就可找到教程,比如 http://www.w3school.com.cn/xpath/
$s =<<< XML
<v time="180530" vi="1" ch="29" nls="0" title="监控实拍" code="qT4j-61ws-Q" enable="1" logo="0" wt="0" band="0">
<a>
<f w="51" h="0" sha1="f04644" size="6012028" brt="2">
http://114.80.235.12
</f>
<f w="31" h="0" sha1="f0464" size="6012028" brt="2">
http://114.80.236.202
</f>
</a>
<b/>
</v>
XML;
$doc = new DOMDocument();
$doc->loadXML($s);
$xpath = new DOMXPath($doc);
$query = '//f[1]/text()';
$entries = $xpath->evaluate($query, $doc);
// foreach ($entries as $entry) var_dump($entry);
foreach ($entries as $entry) echo $entry->data;$xml = simplexml_load_string($s);
foreach($xml->xpath('//f[1]/text()') as $v) echo $v;
?>
//f[2]/text()
xpath的计数器是从1开始的