用php读取xml文件

用php读取xml文件,php,xml,file,Php,Xml,File,我有一个关于用php读取xml文件的问题。 我有一个示例php文件: ///file.xml <appender name="app1"> <param name="param1"></param> </appender> } 对于我的第一次和第二次尝试,都返回空。不给 “app1”值 有人能帮我吗 谢谢。name不是元素,它是appender元素的属性 $name = $value->getElementsByTagNam

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

///file.xml

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

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

有人能帮我吗


谢谢。

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;
    }
}
$data='1!'
';
$objDOM=newdomdocument();
$objDOM->loadXML($data);
$appenders=$objDOM->getElementsByTagName(“appender”);
foreach($appender作为$appender){
$params=$appender->getElementsByTagName(“param”);
foreach($params作为$param){
$name=$param->getAttribute(“名称”);
var_dump($name);
打破
}
}

标记的名称为param,属性的名称为name

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

您的
nodeValue
确实是空的。根据
,您没有指定一个。改用
getAttribute
方法。

@Tinks使用“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 />";
}
?>
param作为$out){
echo$out['name']。“”;
回显$out['value']。“
”; } ?>
下面是一个如何读取xml文件的简短示例。

以下是操作:

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

(相关)马克·贝克的感谢信可能重复。但它似乎不起作用:(在“errorThank@Secator”中给我这个“DOMEElement类对象无法转换为字符串”,但它似乎不起作用:(在“errorThank@Secator”中给我这个“DOMEElement类对象无法转换为字符串”错误请尝试在末尾添加
->nodeValue
。但因为我需要先加载文件,因为它是另一个xml文件@stonyth,所以请使用file_get_contents('file.xml')获取内容。新建SimpleXMLElement(file_get_contents('file.xml');
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