PHP SimpleXMLElement - 访问元素中的值
PHP SimpleXMLElement - accessing values with in an element
我正在使用 SimpleXMLElement class 在 php 中读取 KML 文件。树中的最后一个元素如下例所示(php 对象的 var_dump 表示 $element):
object(SimpleXMLElement)#2 (2) {
["@attributes"]=>
array(1) {
["name"]=>
string(10) "featurecla"
}
[0]=>
string(15) "Admin-0 country"
}
如何访问 php 中的 "Admin-0 country" 值?
我已经尝试了 $element->children() 和 $element->attributes() 并且只能访问 "featurecla"。
我找到了解决方法
原来我没有正确检查 KML 文件,只是查看 php var_dump 输出以了解数据结构。 KML 文件数据如下所示:
<Folder><name>ne_50m_admin_0_countries</name>
<Placemark>
<name>Zimbabwe</name>
<Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
<ExtendedData><SchemaData schemaUrl="#ne_50m_admin_0_countries">
<SimpleData name="featurecla">Admin-0 country</SimpleData>
在 PHP 代码中,我使用下面的代码访问 SimpleData:
foreach($xmlContent->Document->Folder->children() as $Placemark){
print_r("<h1>".(string)$Placemark->name."</h1>");
foreach ($Placemark->ExtendedData->SchemaData->SimpleData as $element){
var_dump($element); //output shown above
var_dump($element->children());
var_dump($element->attributes());
}
}
查看原始 kml 文件后,我能够访问所需的信息:
foreach($xmlContent->Document->Folder->children() as $Placemark){
print_r("<h1>".(string)$Placemark->name."</h1>");
foreach ($Placemark->ExtendedData->SchemaData->SimpleData as $element){
echo $element->attributes()."=>";
echo $element."<br>";
//output featurecla=>Admin-0 country
}
}
我正在使用 SimpleXMLElement class 在 php 中读取 KML 文件。树中的最后一个元素如下例所示(php 对象的 var_dump 表示 $element):
object(SimpleXMLElement)#2 (2) {
["@attributes"]=>
array(1) {
["name"]=>
string(10) "featurecla"
}
[0]=>
string(15) "Admin-0 country"
}
如何访问 php 中的 "Admin-0 country" 值?
我已经尝试了 $element->children() 和 $element->attributes() 并且只能访问 "featurecla"。
我找到了解决方法
原来我没有正确检查 KML 文件,只是查看 php var_dump 输出以了解数据结构。 KML 文件数据如下所示:
<Folder><name>ne_50m_admin_0_countries</name>
<Placemark>
<name>Zimbabwe</name>
<Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
<ExtendedData><SchemaData schemaUrl="#ne_50m_admin_0_countries">
<SimpleData name="featurecla">Admin-0 country</SimpleData>
在 PHP 代码中,我使用下面的代码访问 SimpleData:
foreach($xmlContent->Document->Folder->children() as $Placemark){
print_r("<h1>".(string)$Placemark->name."</h1>");
foreach ($Placemark->ExtendedData->SchemaData->SimpleData as $element){
var_dump($element); //output shown above
var_dump($element->children());
var_dump($element->attributes());
}
}
查看原始 kml 文件后,我能够访问所需的信息:
foreach($xmlContent->Document->Folder->children() as $Placemark){
print_r("<h1>".(string)$Placemark->name."</h1>");
foreach ($Placemark->ExtendedData->SchemaData->SimpleData as $element){
echo $element->attributes()."=>";
echo $element."<br>";
//output featurecla=>Admin-0 country
}
}