Как распечатать данные XML с помощью функции foreach - PullRequest
0 голосов
/ 03 мая 2018

Как распечатать данные XML с помощью функции foreach в laravel 5.6, пожалуйста, предложите любые решения

здесь приложены мои данные XML

<?xml version="1.0" encoding="utf-8"?> <interface-response> <tldlist> <tld> <tld>co.uk</tld> </tld> <tld> <tld>eu</tld> </tld> <tld> <tld>live</tld> </tld> <tld> <tld></tld> </tld> <tldcount>4</tldcount> </tldlist> <Command>GETTLDLIST</Command> <APIType>API</APIType> <Language>eng</Language> <ErrCount>0</ErrCount> <ResponseCount>0</ResponseCount> <MinPeriod></MinPeriod> <MaxPeriod>10</MaxPeriod> <Server>SJL1VWRESELL_T</Server> <Site>eNom</Site> <IsLockable></IsLockable> <IsRealTimeTLD></IsRealTimeTLD> <TimeDifference>+0.00</TimeDifference> <ExecTime>0.000</ExecTime> <Done>true</Done> <TrackingKey>20caefc5-035d-4a3d-8bbe-2743ea99ea8b</TrackingKey> <RequestDateTime>5/3/2018 3:02:01 AM</RequestDateTime> <debug><![CDATA[]]></debug> </interface-response>

предложите любое решение для печати данных XML в моем блэйд-представлении

1 Ответ

0 голосов
/ 25 октября 2018

Я создал пакет Laravel для упрощения синтаксического анализа xml:

https://github.com/mtownsend5512/xml-to-array

$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<interface-response>
  <tldlist>
    <tld>
      <tld>co.uk</tld>
    </tld>
    <tld>
      <tld>eu</tld>
    </tld>
    <tld>
      <tld>live</tld>
    </tld>
    <tld>
      <tld></tld>
    </tld>
    <tldcount>4</tldcount>
  </tldlist>
  <Command>GETTLDLIST</Command>
  <APIType>API</APIType>
  <Language>eng</Language>
  <ErrCount>0</ErrCount>
  <ResponseCount>0</ResponseCount>
  <MinPeriod></MinPeriod>
  <MaxPeriod>10</MaxPeriod>
  <Server>SJL1VWRESELL_T</Server>
  <Site>eNom</Site>
  <IsLockable></IsLockable>
  <IsRealTimeTLD></IsRealTimeTLD>
  <TimeDifference>+0.00</TimeDifference>
  <ExecTime>0.000</ExecTime>
  <Done>true</Done>
  <TrackingKey>20caefc5-035d-4a3d-8bbe-2743ea99ea8b</TrackingKey>
  <RequestDateTime>5/3/2018 3:02:01 AM</RequestDateTime>
  <debug>
    <![CDATA[]]>
  </debug>
</interface-response>
XML;

С его помощью вы можете конвертировать его с помощью глобального помощника:

xml_to_array($xml);

Или класс

// At the top of your controller:
use Mtownsend/XmlToArray/XmlToArray;

// Then in your code:
XmlToArray::convert($xml);

Теперь у вас будет массив:

array:18 [▼
  "tldlist" => array:2 [▼
    "tld" => array:4 [▼
      0 => array:1 [▼
        "tld" => "co.uk"
      ]
      1 => array:1 [▼
        "tld" => "eu"
      ]
      2 => array:1 [▼
        "tld" => "live"
      ]
      3 => array:1 [▼
        "tld" => []
      ]
    ]
    "tldcount" => "4"
  ]
  "Command" => "GETTLDLIST"
  "APIType" => "API"
  "Language" => "eng"
  "ErrCount" => "0"
  "ResponseCount" => "0"
  "MinPeriod" => []
  "MaxPeriod" => "10"
  "Server" => "SJL1VWRESELL_T"
  "Site" => "eNom"
  "IsLockable" => []
  "IsRealTimeTLD" => []
  "TimeDifference" => "+0.00"
  "ExecTime" => "0.000"
  "Done" => "true"
  "TrackingKey" => "20caefc5-035d-4a3d-8bbe-2743ea99ea8b"
  "RequestDateTime" => "5/3/2018 3:02:01 AM"
  "debug" => []
]

Затем отправьте конвертированный xml на просмотр:

return view('your-view')->with(['xml' => $xml]);

Тогда просто переберите все данные, которые вы хотите видеть.

...