在php中从XML节点获取数据
我正在从url检索XML数据,我想从特定节点提取数据 这是我的XML数据在php中从XML节点获取数据,php,xml,simplexml,Php,Xml,Simplexml,我正在从url检索XML数据,我想从特定节点提取数据 这是我的XML数据 <person> <first-name>ABC</first-name> <last-name>XYZ</last-name> </person> 那么我哪里出了问题呢?试着用这个: <person> <firstname>ABC</firstname> <lastname>XYZ&l
<person>
<first-name>ABC</first-name>
<last-name>XYZ</last-name>
</person>
那么我哪里出了问题呢?试着用这个:
<person>
<firstname>ABC</firstname>
<lastname>XYZ</lastname>
</person>
这将与此相呼应:
firstname:
lastname:
other: 111
如果要创建第一个节点,只需执行以下操作:
echo $xml->firstname
变量名中不允许使用
'-'
$child->first name
被解释为$child->first-minus name
。您应该找到另一种方法来获取内容。如前所述,您不能在变量名中使用-
。从我收集的信息来看,您只是想打印出标记名和值。如果是这样的话,你很可能想要:
foreach($xml->children() as $child)
{
echo "{$child->getName()}: $child <br />";
}
foreach($xml->children()作为$child)
{
echo“{$child->getName()}:$child
”;
}
没有。它没有。$child->getName只返回节点名。但是$child->firstname或$child->firstname不会返回节点的数据当然是。我正在尝试打印标记值。它确实奏效了。感谢you@juco:请用这些常见问题发表评论并链接到现有答案。另请参阅
<person>
<firstname>ABC</firstname>
<lastname>XYZ</lastname>
<other>
<first>111</first>
<second>222</second>
</other>
</person>
<?php
$content = file_get_contents("test.xml");
$xml = simplexml_load_string($content);
foreach($xml->children() as $child)
{
echo $child->getName() . ": " .$child->first . "<br>";
}
?>
firstname:
lastname:
other: 111
echo $xml->firstname
foreach($xml->children() as $child)
{
echo "{$child->getName()}: $child <br />";
}