在php中读取xml文件

时间:2012-02-07 08:52:59

标签: php xml file

我有一个关于用php读取xml文件的问题。 我有一个示例php文件:

/// file.xml

 <appender name="app1">
      <param name="param1"></param>
 </appender>

现在我想获得param名称的值。我有这个代码。

function getURL($aURL){

$objDOM = new DOMDocument();

////the file.xml    
$objDOM->load($aURL);  
$note = $objDOM->getElementsByTagName("appender");

foreach ( $note as $value)  {
    ///First try
    $name = $value->getElementsByTagName("name")->firstChild->nodeValue;

    ///Second try
    ///$logName = $value->getElementsByTagName("name");
    ///$name = $logName->item(0)->nodeValue;

}

}

对于我的第一次和第二次尝试,两者都返回空。不给 “app1”值。

有人可以帮我吗?

谢谢。

5 个答案:

答案 0 :(得分:2)

代码的名称为 param ,属性的名称为名称

$name = $value->getElementsByTagName("param")->firstChild->getAttribute('name')->nodeValue;

答案 1 :(得分:1)

name不是元素,它是appender元素的属性

$name = $value->getElementsByTagName("param")->firstChild->getAttribute("name");

修改

$data = '<appender name="app1">
    <param name="param1"></param>
    <param name="param2"></param>
</appender>';

$objDOM = new DOMDocument();
$objDOM->loadXML($data);

$appenders = $objDOM->getElementsByTagName("appender");

foreach ($appenders as $appender)  {
    $params = $appender->getElementsByTagName("param");
    foreach($params as $param) {
        $name = $param->getAttribute("name");
        var_dump($name);
        break;
    }
}

答案 2 :(得分:1)

@Tinks with“SimpleXML”它更容易阅读值。

<?php
  $xmlString = '<appender name="app1">
      <param name="param1" value="2">123</param>
      <param name="param2" value="3">345</param>
 </appender>';

$xml = new SimpleXMLElement($xmlString);

foreach($xml->param as $out) {
    echo $out['name']."  ";
    echo $out['value']."<br />";
}
?>

以下是如何读取xml文件的简短示例。

答案 3 :(得分:0)

您的nodeValue真的是空的。根据{{​​1}},您没有指定一个。改为使用<param name="param1"></param>方法。

答案 4 :(得分:-1)

以下是该做什么:

Load the XML file
Get the name of the first element
Create a loop that will trigger on each child node, using the children() function
Output the element name and data for each child node