2014-11-06 3 views
3

Что я имею здесь, это поиск API на основе XML. Я загружаю URL-адрес, который является xml по большей части, в simple_xml_load_file().Простой файл загрузки XML и извлечение информации из результата XML

Вставляя URL-адрес в браузер, выдает XML-выход.

Вы можете попробовать ссылку подстановок here,

Я загрузка точно так же связь с кавычками в simplexml_load_file.

Если я застрял, это извлекающая часть, я хотел бы извлечь из XML-результата состояние State, Carrier, City, County и Phone.

Это мой код, чтобы извлечь State

$state = $simpleXML->searchService->searchResult->dataset->phoneInfo->rateCenter['state']; 

Это терпит неудачу по какой-то причине я не знаю, почему. Выполнение echo из $simpleXML не дает никакого выхода.

Так что я не могу либо загрузить URL-адрес XML, либо извлечь его, что стало явным с загрузкой XML.

Так что я вставив весь код для вас, чтобы посмотреть,

<?php 

$phoneNumber = 5128435436; 
$context = stream_context_create(array('http' => array('header' => 'Accept: application/xml'))); 

$simpleXML = 'http://api.peoplesearchxml.com/SearchServicePublic.asmx/SearchXML?sSearchRequest=<search><searchType>PartnerPeopleSearchByPhoneACW</searchType>< searchCriteria><phone>'.$phoneNumber.'</phone></searchCriteria><identification><websiteKey>7</websiteKey><partnerID>XYZCalledYou.com</partnerID><partnerPassword>eshwarrocks</ partnerPassword><ipAddress>127.0.0.1</ipAddress></identification><formatting><maxResults>5</maxResults></formatting></search>';  

$xml = file_get_contents($simpleXML, false, $context); 
$xml = simplexml_load_string($xml); 

$state = $simpleXML->searchService->searchResult->dataset->phoneInfo->rateCenter['state']; 
$carrier = $simpleXML->searchResult->dataset->phoneSearch['company']; 
$city = $simpleXML->searchResult->dataset->phoneSearch['city']; 
$county = $simpleXML->searchResult->dataset->phoneSearch['county']; 
$phoneType = $simpleXML->searchResult->dataset->phoneSearch['lineType']; 

echo $simpleXML. '<br><br><br><br><br>'; 
echo 'Phone Number: '.$phoneNumber.'<br />'; 
echo 'State: '.$state.'<br />'; 
echo 'Carrier: '.$carrier.'<br />'; 
echo 'City: '.$city.'<br />'; 
echo 'County: '.$county.'<br />'; 
echo 'Phone Type: '.$phoneType.'<br />'; 

?> 

Спасибо за ваше время, глядя на это, высоко ценится.

ответ

1

Вы указывая на неправильные объекты:

$phoneNumber = 5128435436; 
$context = stream_context_create(array('http' => array('header' => 'Accept: application/xml'))); 

$simpleXML = 'http://api.peoplesearchxml.com/SearchServicePublic.asmx/SearchXML?sSearchRequest=<search><searchType>PartnerPeopleSearchByPhoneACW</searchType><searchCriteria><phone>'.$phoneNumber.'</phone></searchCriteria><identification><websiteKey>7</websiteKey><partnerID>XYZCalledYou.com</partnerID><partnerPassword>eshwarrocks</partnerPassword><ipAddress>127.0.0.1</ipAddress></identification><formatting><maxResults>5</maxResults></formatting></search>'; 

$xml = file_get_contents($simpleXML, false, $context); 
$xml = simplexml_load_string($xml); 

$dataset = $xml->searchResult->dataset[0]; 

$state = (string) $dataset->phoneInfo->rateCenter->attributes()->state; 
$carrier = (string) $dataset->phoneInfo->operatingCompany->attributes()->name; 
$city = (string) $dataset->phoneInfo->operatingCompany->attributes()->city; 
$country = (string) $dataset->phoneInfo->rateCenter->attributes()->country; 
$phoneType = (string) $dataset->phoneInfo->attributes()->lineType; 

echo " 
    <strong>State:</strong>   $state <br/> 
    <strong>Carrier:</strong>  $carrier <br/> 
    <strong>City:</strong>   $city <br/> 
    <strong>Country:</strong>  $country <br/> 
    <strong>Phone Type:</strong> $phoneType <br/> 
"; 

Sample Output

+0

Благодаря @Ghost он работает сейчас ... +1 и правильный ответ дали :) Очень высокую оценку. – Eshwar

+1

@ Действительно, мужчина, мне это нравилось – Ghost

Смежные вопросы