Php 带子项的XML解析()

Php 带子项的XML解析(),php,xml,Php,Xml,我正在尝试解析以下xml 我需要根据国家分析位置,这是我的: <?php $xml = simplexml_load_file("ctlocation.ES.xml") or die("Error: Cannot create object"); $name3 = $_GET["nombre"]; foreach($xml->Country->children('Albania') as $loca){ $name2 = $loca[0]['Name'];

我正在尝试解析以下xml

我需要根据国家分析位置,这是我的:

<?php
$xml = simplexml_load_file("ctlocation.ES.xml") 
   or die("Error: Cannot create object");
$name3 = $_GET["nombre"];
foreach($xml->Country->children('Albania') as $loca){
    $name2 = $loca[0]['Name'];
    echo $name2;
    echo "<br />";
    }
?>
它不会重新调整任何错误,但也不会解析任何内容。 知道怎么了吗

非常感谢

观察1:

如果由于大尺寸~35m的CTLoop..xml而出现性能问题,请考虑在PHP中解析大型XML文件。

意见2:

除了输入XML的大小之外,您发布的PHP还存在正确性问题。 ctlocation.ES.xml中没有根级别的Country元素,“albana”仅作为@name属性存在于/CTLocations/Country元素中。此外,还必须说明输入XML元素所在的名称空间

让我们使用输入XML中的一个小示例,并将其作为字符串加载,以便创建一个小的、自包含的示例

要浏览阿尔巴尼亚的各个位置,请尝试以下操作:


如果你把$loca倒进那辆车里会怎么样?非常感谢!花了一整天的时间想弄明白!你真棒
<?php 
$xmlstring = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<CTLocations xmlns="http://www.cartrawler.com/">
  <Country code="AL" name="Albania" continent="Europe">
    <Location Id="7188" Name="Tirana Airport" Lat="41.42108838" Lng="19.71271276" CountryCode="AL" Address="Tirana Airport Muhamet Gjollesha Str., Muhamet Gjollesha Str., Tirana" CityName="Tirana" Airport="1" AirportCode="TIA" RailwayStation="0"/>
    <Location Id="30768" Name="Tirana Downtown" Lat="41.332" Lng="19.832" CountryCode="AL" Address="Rruga E Durresit. Nr 61, Tirana" CityName="Tirana" Airport="0" RailwayStation="0"/>
    <Location Id="52400" Name="Sheraton Italia Square" Lat="0.0" Lng="0.0" CountryCode="AL" Address="Square Italia Hotel Sheraton , Tirana," CityName="Tirana" PostalCode="" Airport="0" RailwayStation="0"/>
  </Country>
  <Country code="AD" name="Andorra" continent="Europe">
    <Location Id="4650" Name="Escaldes" Lat="42.511" Lng="1.548" CountryCode="AD" Address="Avda. Miquel Mateu, 25, Escaldes-engordany , Andorra, Ad700" CityName="Andorra" PostalCode="AD700" Airport="0" RailwayStation="0"/>
    <Location Id="152576" Name="Andorra" Lat="42.508" Lng="1.522" CountryCode="AD" Address="Avda D Enclar, 142, Edifici Becier, Andorra La Vella, Ad500" CityName="Andorra La Vella" PostalCode="AD500" Airport="0" RailwayStation="0"/>
  </Country>
</CTLocations>
XML;
$xml = simplexml_load_string($xmlstring)
   or die("Error: Cannot create object");
$xml->registerXPathNamespace('ct', 'http://www.cartrawler.com/');
echo "The locations in Albania:<br/>";
foreach($xml->xpath("/ct:CTLocations/ct:Country[@name='Albania']/ct:Location") as $loca) {
    echo $loca['Name'];
    echo "<br/>";
}
echo "Done."
?>
The locations in Albania:
Tirana Airport
Tirana Downtown
Sheraton Italia Square
Done.