2012-01-06 2 views
2

Страница: http://en.wikipedia.org/wiki/ISO_4217#Active_codesИзвлечение данных таблицы из Википедии и преобразовать в документ XML

Можно ли извлечь каждый:

  • код валюты
  • название валюты
  • валюты местоположения

и, если возможно, сохранить в документе XML так:

<currency> 
    <AED> 
     <curr>United Arab Emirates dirham</curr> 
     <loc>United Arab Emirates</loc> 
    </AED> 
</currency> 
<currency> 
    <AFN> 
     <curr>Afghan afghani</curr> 
     <loc>Afghanistan</loc> 
    </AFN> 
</currency> 

Я не уверен, если это поможет, но я обнаружил, что вы можете преобразовать вики-страницу в несколько XML-структуры:

http://en.wikipedia.org/wiki/Special:Export/ISO_4217#Active_codes

Спасибо.

ответ

2

таблица создана, и, таким образом, доступен на формате вики: http://en.wikipedia.org/w/index.php?title=ISO_4217&action=edit&section=4

Вы могли бы написать сценарий для синтаксического анализа формата вики в массив, и построить XML из этого. Попробуйте разделить строку на новые строки (например, с помощью explode), а затем разделите каждую строку на ||, которая разделяет столбцы таблицы.

Что-то вроде этого:

$currencyList = array(); 
$source = "<insert wikipedia table code here>"; 

$rows = explode("\n", $source); // split the table in rows 

foreach($rows as $row) { 

    if(strlen(trim($row)) < 0) { continue; } // ignore empty rows 
    if(trim($row) == "|-") { continue; } // ignore table line separators 

    $row = substr($row, 2); // remove the "| " from the beginning of each row 

    $cols = explode("||", $row); // split the row in columns 

    $currency = array(// clean data and store in associative array 
     'code' => trim($cols[0]), 
     'number' => trim($cols[1]), 
     'digits_after_decimal' => trim($cols[2]), 
     'name' => trim($cols[3]) 
    ); 

    array_push($currencyList, $currency); // add the read currency to the list 

} 

var_dump($currencyList); // $currencyList now has a list of associative arrays with your data. 

Чтобы построить XML, вы можете попробовать РНР SimpleXML.

+0

Это работает как шарм! Спасибо. – Nirmal

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