blob: e0d53cc5139dceaec2376575bfd2ce033222c18e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
<?php
declare(strict_types=1);
require_once __DIR__.'/../vendor/autoload.php';
use Zhineng\RegionChina\Build\CodeToNameHandler;
use Zhineng\RegionChina\Build\RelationshipHandler;
use Zhineng\RegionChina\Build\TopLevelHandler;
$doc = new \DOMDocument;
$doc->loadHTMLFile(__DIR__.'/../resources/raw.html', \LIBXML_NOERROR);
/** @var \Zhineng\Region\Build\RegionHandler */
$handlers = [
$codeToNameHandler = new CodeToNameHandler,
$topLevelHandler = new TopLevelHandler,
$relationshipHandler = new RelationshipHandler,
];
$count = 0;
$rows = $doc->getElementsByTagName('tr');
foreach ($rows as $row) {
$columns = $row->getElementsByTagName('td');
$columnCode = $columns->item(1);
$columnName = $columns->item(2);
if (! $columnCode instanceof \DOMElement) {
continue;
}
if (! $columnName instanceof \DOMElement) {
continue;
}
$code = mb_trim($columnCode->textContent);
if (! is_numeric($code)) {
continue;
}
$name = rtrim(mb_trim($columnName->textContent), '*');
$count++;
foreach ($handlers as $handler) {
$handler->handle($code, $name);
}
}
printf("- Export code to name map\n");
$codeToNameHandler->export(__DIR__.'/../resources/names.php');
printf("- Export top level list\n");
$topLevelHandler->export(__DIR__.'/../resources/top-levels.php');
printf("- Export relationship map\n");
$relationshipHandler->export(__DIR__.'/../resources/relationships.php');
printf("- Processed %d regions.\n", $count);
|