Извлечь значения из объекта SimpleXMLElement

Я использую API namecheap, чтобы сделать некоторые вещи, я впервые использую API, и я столкнулся с небольшой проблемой.

Это то, что я до сих пор:

$ApiKey = "**********************";
$ApiUser = "*****";
$UserName = "*********";
$ClientIP = "********";
$NamecheapURI = "https://api.namecheap.com/xml.response";

$executionURL = $NamecheapURI."?ApiUser=".$ApiUser."&ApiKey=".$ApiKey."&UserName=".$UserName."&Command=namecheap.domains.check&ClientIp=".$ClientIP."&DomainList=".$domain;

$xml = simplexml_load_file($executionURL);

print_r($xml);

При печати $ xml мне возвращаются простые объекты XML:

  SimpleXMLElement Object
(
[@attributes] => Array
(
[Status] => OK
)

[Errors] => SimpleXMLElement Object
(
)

[Warnings] => SimpleXMLElement Object
(
)

[RequestedCommand] => namecheap.domains.check
[CommandResponse] => SimpleXMLElement Object
(
[@attributes] => Array
(
[Type] => namecheap.domains.check
)

[DomainCheckResult] => SimpleXMLElement Object
(
[@attributes] => Array
(
[Domain] => facebook.com
[Available] => false
[ErrorNo] => 0
[Description] =>
[IsPremiumName] => false
[PremiumRegistrationPrice] => 0
[PremiumRenewalPrice] => 0
[PremiumRestorePrice] => 0
[PremiumTransferPrice] => 0
[IcannFee] => 0
[EapFee] => 0
)

)

)

[Server] => PHX01APIEXT03
[GMTTimeDifference] => --5:00
[ExecutionTime] => 0.008
)

Мой вопрос за пределами этого, как мне двигаться вперед и извлекать данные из этого?

Я пытался рассматривать это как массив, но я не получаю, когда с помощью is_array () для проверки, если это был массив, он говорит, что это не то, что я не понимаю …

Я прошу прощения, если это нубский вопрос, я немного новичок в этом. Короче говоря, что мне нужно сделать, чтобы извлечь данные из этого?

Заранее спасибо!

-1

Решение

Научиться использовать SimpleXML гораздо лучше, чем пытаться преобразовать его в массивы / json / что-нибудь еще и просто (отсюда и название). Быстрый пример …

$response = '<?xml version="1.0" encoding="UTF-8"?>
<CommandResponse Type="namecheap.domains.check">
<DomainCheckResult Domain="facebook.com">
<Element>1234</Element>
<Element>12345</Element>
</DomainCheckResult>
</CommandResponse>';
$xml = simplexml_load_string($response);

echo "DOmain=".$xml->DomainCheckResult['Domain'].PHP_EOL;
foreach ( $xml->DomainCheckResult->Element as $value)   {
echo "Value=".(string)$value.PHP_EOL;
}

выходы …

DOmain=facebook.com
Value=1234
Value=12345

Вы должны адаптировать это к своему собственному XML, но идея в том, что если вы хотите получить доступ к элементу элемента, вы используете обозначение объекта -> и если вам нужно получить атрибут, используйте обозначение массива [],

Итак, в приведенном выше коде первое эхо ($xml->DomainCheckResult['Domain']) получает <DomainCheckResult> элемент и выводит атрибут домена.

Тогда foreach Цикл говорит выбрать каждый <Element> в <DomainCheckResult> и выведите значение.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]