不知是否有人能帮我一下。
我有一个xml文件,由大约22,000个操作系统网格引用组成,摘录如下所示。
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <Row>
<Name>Deserted medieval village</Name>
<NGR>SS 00000 11111</NGR>
</Row>
我需要为每个'NGR'做的是将其转换为Lat &液化天然气的协调。如果我要手动完成,我会将NGR输入到我拥有的HTML表单中,并在单击事件上使用以下Javascript代码(来自nearby.org.uk)来转换它。然后将其保存到mySQL数据库中的一个表中。
function converttolatlng() {
var gr = document.getElementById('osgridref').value;
var osgb = new GT_OSGB();
if (osgb.parseGridRef(gr)) {
var wgs84 = osgb.getWGS84();
document.getElementById('osgb36lat').value = wgs84.latitude;
document.getElementById('osgb36lon').value = wgs84.longitude;
}
else {
document.getElementById('osgb36lat').value = "n/a";
document.getElementById('osgb36lon').value = "n/a";
}
}
因为我有这么多,我希望能够自动运行这种转换,从我在互联网上看到的,我认为最好的方法是通过PHP运行xml,但我必须承认我不确定从哪里开始。
我只是想知道是否有人可以看看这个,请告诉我我需要做什么来创建提取过程。
衷心感谢
您是否考虑过使用XML数据库,因为您的输入文档是XML?代码看起来像这样:
for $row in doc("input.xml")//Row
let $coordinates := parseGridRef($row/NGR)
(: assuming parseGridRef implements the conversion :)
return some-insertion-function("some-collection-name",
<entry>
<name>{$row}</name>
<latitude>{$coordinates[1]}</latitude>
<longitude>{$coordinates[2]}</longitude>
</entry>)