用php读取xml文件
我有一个关于用php读取xml文件的问题。 我有一个示例php文件: ///file.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
<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