如何用php获取XML的标记名?

My XMLfile is as follows:

<Project>
  <ProjectInformation>
    <FileHeader>IDGIS_PROJECT</FileHeader>
    <Details ProjectID="0" ProjectName="" Description="" StartDate="02/05/2012 00:00:00 AM" OwnerShip="" LastModified="01/01/0001 00:00:00 AM" Datum="WGS_84" Projection="CYL" NoSignificantDecimals="3" ZoomCurrent="303601" RasterHeight="0" Background="-1">Project Details</Details>
    <ProjectBounds XMin="25.4579486950873" YMin="44.7183808936148" XMax="26.5953949808977" YMax="45.5345534542584" ExtentBounds="no">Bounds</ProjectBounds>
  </ProjectInformation>
  <Layers>
    <Layer ID="2" Description="" MinZoom="1" MaxZoom="1000000000" Visible="3" RemotHostType="LocalFile" RemotHost="" FolderName="Prahova_Highways" Path="" LayerStatus="ReadWrite">
</Layers>

I am unable to get child notes of Projectinformation. i want to get all attributes of Details and Project bounds. This thing is very easy in Java but i dunt know how to do it with php. My code for getting childnotes of projectinformation is as follows:

$xmlDoc = new DOMDocument();
$xmlDoc->load('oglPrahova/prahova.GIS');

$x=$xmlDoc->documentElement;
var_dump($x);

$x = $xmlDoc->->getElementsByTagName('ProjectInformation');  

foreach ($x->childNodes AS $item) {
    print $i->nodeName . " = " . $item->nodeValue . "<br>";
}

You should use SimpleXML :

$xml = new SimpleXMLElement(
'<Project>
    <ProjectInformation>
        <FileHeader>IDGIS_PROJECT</FileHeader>
        <Details ProjectID="0" ProjectName="" Description="" StartDate="02/05/2012 00:00:00 AM" OwnerShip="" LastModified="01/01/0001 00:00:00 AM" Datum="WGS_84" Projection="CYL" NoSignificantDecimals="3" ZoomCurrent="303601" RasterHeight="0" Background="-1">Project Details</Details>
        <ProjectBounds XMin="25.4579486950873" YMin="44.7183808936148" XMax="26.5953949808977" YMax="45.5345534542584" ExtentBounds="no">Bounds</ProjectBounds>
    </ProjectInformation>
    <Layers>
        <Layer ID="2" Description="" MinZoom="1" MaxZoom="1000000000" Visible="3" RemotHostType="LocalFile" RemotHost="" FolderName="Prahova_Highways" Path="" LayerStatus="ReadWrite" />
    </Layers>
</Project>');

foreach($xml->ProjectInformation->Details->attributes() as $key => $value)
{
    echo "$key : $value ";
}
foreach($xml->ProjectInformation->ProjectBounds->attributes() as $key => $value)
{
    echo "$key : $value ";
}

As a more generic answer, you can use :

foreach($xml->ProjectInformation->children() as $child)
{
    foreach($child->attributes() as $key => $value)
    {
        echo "$key : $value ";
    }
}

You can also use xpath, as said in a comment.

Try with this.

$x = $xmlDoc->getElementsByTagName('ProjectInformation');  

foreach ($x->childNodes as $nodename) {
    if( $nodename->nodeName == 'FileHeader' ){
        echo $nodename->nodeName. " - " . $nodename->nodeValue."<br>";
    }
}

Where $nodename->nodeName holds all the child node names like FileHeader, Details, etc.