[英]How can I extract all text from XML data using PHP (i.e. SimpleXmlElement)?
[英]How do I extract all “TickerSymbol” elements from an external XML file, using PHP?
我想編寫一個PHP腳本來提取以下外部頁面中的所有元素 (僅股票代碼): https : //www.predictit.org/api/marketdata/all/
因此,在撰寫本文時,輸出為
VAGOV17
DEM.VAGOV17
GOP.VAGOV17
NJGOV17
...
我嘗試了loadXML()和DOMDocument :: getElementsByTagName()的變體,但一直出錯。 上一頁中的XML看起來格式正確。
提前致謝!
然后,您可以使用foreach遍歷所有數據。
例:
$context = stream_context_create(array('http' => array('header' => 'Accept: application/xml')));
$url = 'https://www.predictit.org/api/marketdata/all/';
$xml = file_get_contents($url, false, $context);
$elements = simplexml_load_string($xml);
foreach ($elements->Markets->MarketData as $marketData) {
echo $marketData->TickerSymbol . "<br>";
foreach ($marketData->Contracts->MarketContract as $contract) {
echo "-" . $contract->TickerSymbol . "<br>";
}
}
將導致:
VAGOV17
-DEM.VAGOV17
-GOP.VAGOV17
NJGOV17
-DEM.NJGOV17
-GOP.NJGOV17
MAYOR.NYC2017
-BDB.MAYOR.NYC2017
-WEINER.MAYOR.NYC2017
-QUINN.MAYOR.NYC2017
-STRINGER.MAYOR.NYC2017
等等..
這是您的代碼。 讓我知道工作與否
希望您的xml文件名為“ all.xml”
<?php
if (file_exists('all.xml'))
{
$xml = simplexml_load_file('all.xml');
foreach ($xml as $k)
{
$tag = $k->getName();
$i = 0;
foreach($xml->$tag->children() as $key)
{
$marketData = $key->getName();
echo $xml->$tag->MarketData[$i++]->TickerSymbol . "<br>";
}
}
}
else
{
exit('Failed to open all.xml.');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.