我正在使用以下代码来获取文件的xml对象:
$xml = simplexml_load_file($tmp_dir);
经过长时间的研究后,我发现如何通过使用foreach循环获取所有节点的值,是否有办法获取名称?我需要它所以我可以解析像magicparse(http://www.magicparser.com/)
这样的任何xml示例输入:
<?xml version="1.0"?>
<Root attribute="example_attribute">
<Node 1>
<Nested Node>
<Nested Node>
</Node 1>
<Node 2>
</Node 2>
</Root>
欲望输出:
Root
-@attribute
-Node 1
-Node 1/Nested Node
-Node 2
答案 0 :(得分:1)
这将获得所有节点和属性名称
<?php
$xf = file_get_contents($xmlFileName);
$xml = simplexml_load_string($xf);
displayNode($xml, 0);
function displayNode($node, $offset) {
if (is_object($node)) {
$node = get_object_vars($node);
foreach ($node as $key => $value) {
echo str_repeat(" ", $offset) . "-" . $key . "\n";
displayNode($value, $offset + 1);
}
} elseif (is_array($node)) {
foreach ($node as $key => $value) {
if (is_object($value))
displayNode($value, $offset + 1);
else
echo str_repeat(" ", $offset) . "-" . $key . "\n";
}
}
}