重新格式化大型(ish)XML文件的简单方法?

时间:2015-08-10 14:34:17

标签: mysql xml phpmyadmin

我正在尝试构建一个商店定位器,它使用XML文件中的数据来加载位置。

从phpmyadmin导出当前文件,如下所示:

<table name="tblLabs">
<column name="LabID">76</column>
<column name="RegionID">8</column>
<column name="Consultant">Dr M E Herd</column>
<column name="BMS">Mrs C Pickup</column>
<column name="AP">NULL</column>
<column name="AdditionalStaff">NULL</column>
<column name="Department">Pathology Dept</column>
<column name="OrganizationName">Bury General Hospital</column>
<column name="Address">Walmersley Road</column>
<column name="Address1">Bury</column>
<column name="City">Lancs</column>
<column name="PostCode">BL9 6PG</column>
<column name="Tel">0161 1234 1234</column>
<column name="Fax">0161 1234 1234</column>
<column name="EMail">email@email.com</column>
<column name="Comments"></column>
<column name="Public">1</column>
<column name="lat">0.000000</column>
<column name="lng">0.000000</column>
<column name="type"></column>
</table>

要使用javascript文件,我需要将其格式化如下:

<markers>

<marker Consultant="Dr M E Herd" 
BMS="Mrs C Pickup" 
AP="NULL" 
AdditionalStaff="NULL" 
Department="Pathology Dept" 
name="Bury General Hospital" 
address="Walmersley Road" 
city="Bury" 
state="Lancs" 
postal="BL9 6PG" 
phone="0161 705 3274" 
Fax="0161 705 3418" 
email="email@email.com" 
Comments="" 
lat="53.6145706" 
lng="-2.2927511" 
type="" />

</markers>

有没有办法从phpmyadmin以上述格式导出?或者是否有另一种方法可以快速重新格式化数据以满足我的需要?我还需要添加lat&amp;从我正在使用的批处理地理编码服务中获取。

1 个答案:

答案 0 :(得分:0)

使用此XSLT

可以轻松完成此操作
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="utf-8" indent="no"/>

    <xsl:template match="table">
        <markers>
            <marker>
                <xsl:for-each select="column">
                    <xsl:attribute name="{@name}">
                        <xsl:value-of select="text()" />
                    </xsl:attribute>
                </xsl:for-each>
            </marker>
        </markers>
    </xsl:template>
</xsl:stylesheet>

您可以对其进行测试online

但这并没有增加纬度和经度 - 但为什么不将它存储在MySQL中呢?