我有这个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
结果
答案 0 :(得分:0)
我希望,这会有所帮助:
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;
}
}
解释非常简单 - 在detailed manual上提供了关于使用DOMDocument类的php.net。
答案 1 :(得分:0)
您可以传递节点名称&#39;路径&#39;到函数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');
将导致:
/目录/文件
答案 2 :(得分:-3)
您可以改用SimpleXml simpleXml example - php.net