我有这个xml结构:
<?xml version="1.0" ?>
<log>
<path>/dir/file</path>
<name>log_</name>
</log>
这是我的函数:
function getNode($node)
{
$dom = new DOMDocument();
$dom->load('config.xml');
$value = $dom->getElementsByTagName($node);
foreach($value as $val)
{
$ints = $val->getElementsByTagName($node);
$intVal = $ints->item(0)->nodeValue;
echo $intVal;
}
}
如何获取path
节点的值?我将节点作为参数传递,例如path
.但是代码不会输入到foreach中。我做错了什么?我在等待/dir/file
结果
您可以将节点名称"path"传递给函数getNode
。函数 getElementsByTagName 将字符串作为参数,并将返回一个 DOMNodeList,您可以使用 foreach
循环该列表。
例如:
function getNode($node)
{
$dom = new DOMDocument();
$dom->load('config.xml');
$value = $dom->getElementsByTagName($node);
foreach($value as $val)
{
$path = $val->nodeValue;
echo $path;
}
}
getNode('path');
将导致:
/目录/文件
我希望这会有所帮助:
function getNode($node)
{
$dom = new DOMDocument();
$dom->load('config.xml');
$value = $dom->getElementsByTagName($node);
if ($value->length > 0) {
$intVal = $value->item(0)->nodeValue;
echo $intVal;
}
}
解释非常简单 - php.net 上提供了有关使用 DOMDocument 类的详细手册。
你可以改用 SimpleXml 来代替。
简单 XML 示例 - php.net