2012-02-09 6 views
-1

У меня есть XML-канал, с которого мне нужно получить доступ к элементу. Однако ни один из методов, которые я пробовал, не работал.Как я могу прочитать элемент из XML-файла в PHP?

Ниже подача XML в полном объеме:

<GeocodeResponse> 
<status>OK</status> 
<result> 
    <type>locality</type> 
    <type>political</type> 
    <formatted_address>Liverpool, Merseyside, UK</formatted_address> 
    <address_component> 
     <long_name>Liverpool</long_name> 
     <short_name>Liverpool</short_name> 
     <type>locality</type> 
     <type>political</type> 
    </address_component> 
    <address_component> 
     <long_name>Merseyside</long_name> 
     <short_name>Mersyd</short_name> 
     <type>administrative_area_level_2</type> 
     <type>political</type> 
    </address_component> 
    <address_component> 
     <long_name>England</long_name> 
     <short_name>England</short_name> 
     <type>administrative_area_level_1</type> 
     <type>political</type> 
    </address_component> 
    <address_component> 
     <long_name>United Kingdom</long_name> 
     <short_name>GB</short_name> 
     <type>country</type> 
     <type>political</type> 
    </address_component> 
    <geometry> 
     <location> 
      <lat>53.4115400</lat> 
      <lng>-2.9901160</lng> 
     </location> 
     <location_type>APPROXIMATE</location_type> 
     <viewport> 
      <southwest> 
       <lat>53.3049930</lat> 
       <lng>-3.2462348</lng> 
      </southwest> 
      <northeast> 
       <lat>53.5178208</lat> 
       <lng>-2.7339972</lng> 
      </northeast> 
     </viewport> 
     <bounds> 
      <southwest> 
       <lat>53.3115426</lat> 
       <lng>-3.0191794</lng> 
      </southwest> 
      <northeast> 
       <lat>53.5039071</lat> 
       <lng>-2.8115043</lng> 
      </northeast> 
     </bounds> 
    </geometry> 
</result> 
</GeocodeResponse> 

Я пытаюсь выбрать Геометрия-> Адрес-> решеточных> место, а затем в пределах этой широты и LNG.

+0

(http://php.net/manual/en/book.xml.php) –

+1

Есть ли здесь вопрос PHP? Есть какой-нибудь код? Как вы читаете файл? Вы говорите, что ничего не сработало - но что вы пробовали? –

+3

Возможный дубликат [Как проанализировать XML-файл в PHP] (http://stackoverflow.com/questions/1706042/how-to-parse-xml-file-in-php) –

ответ

2

Вы попробовали simplexml_load_string или simplexml_load_file? Просто загрузите ваши данные с ним, а затем получить доступ к узлу вы хотите, как это:

$xml = simplexml_load_file('your.xml'); 
echo $xml->GeocodeResponse->result->geometry->location->lat; 
echo $xml->GeocodeResponse->result->geometry->location->lon; 
+0

жаль, что я должен был был более конкретным Я получаю сообщение об ошибке, но похоже, что к тому времени, поскольку это был мой простой xml-загрузчик, который не работал. Я открыл openssl в php.ini, и все снова хорошо. ]] Извините за то, что потратил время на все дни. У меня есть + все комментарии. спасибо –

+0

@ DanielBenzie Пожалуйста, обновите свой вопрос с помощью этой информации, без всех необходимых подробностей мы не сможем найти хороший ответ. – Oldskool

0

Если у вас есть строка, вы можете сделать следующее: [! XML Parser на помощь]

$str = "<?xml version='1.0'?> 
      <document> 
       <cmd>login</cmd> 
       <login>Richard</login> 
      </document>"; 
$xml = simplexml_load_string($str); 

print_r($xml); 

print_r($xml->document->cmd); 

// Remember to type cast it a string if you want the actual value. 
// Example: 
$myval = (string) $xml->document->cmd; 
Смежные вопросы