我有一个关于用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”值。
有人可以帮我吗?
谢谢。
答案 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