PHP: Mit simplexml können Sie alle Ebenen einer XML-Datei durchlaufen

Ich habe eine Funktion, die simplexml verwendet, um die erste Ebene von Knoten in einer XML-Datei zurückzugeben und in eine ungeordnete Liste zu schreiben:

function printAssetMap() {
    $xml = simplexml_load_file(X_ASSETS);
    $assets = $xml->asset;
    $html = '<ul>'."\n";
    foreach ($assets as $asset) {
        $html .= '<li id="asset'.$asset->asset_assetid.'"><ins>&nbsp;</ins><a href="#">'.$asset->asset_name.' ['.$asset->asset_assetid.']</a></li>'."\n";
    }//end foreach
    $html .= '</ul>'."\n";
    return $html;
}// printAssetMap()

Von mir verwendetes XML mit verschachtelten Knoten:

<?xml version="1.0"?>
<assets>
  <asset>
    <asset_name>Home</asset_name>
    <asset_url>/home</asset_url>
    <asset_assetid>1</asset_assetid>
  </asset>
  <asset>
    <asset_name>Projects</asset_name>
    <asset_url>/projects</asset_url>
    <asset_assetid>2</asset_assetid>
    <asset>
      <asset_name>Portfolio</asset_name>
      <asset_url>/projects/portfolio</asset_url>
      <asset_assetid>3</asset_assetid>
    </asset>
    <asset>
      <asset_name>Current Jobs</asset_name>
      <asset_url>/projects/current-jobs</asset_url>
      <asset_assetid>4</asset_assetid>
    </asset>
  </asset>
</assets>

Jetzt füge ich untergeordnete Knoten der Knoten hinzu, die ich gerade zurückgebe. Gibt es eine Möglichkeit, ALLE Ebenen von untergeordneten Knoten in einer XML-Datei zu durchlaufen, auch wenn ich nicht weiß, wie viele Ebenen es gibt, und diese meiner Liste hinzuzufügen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage