首页 > 解决方案 > 使用 Golang 解组后如何检查 XML 中的所有元素和属性?

问题描述

我想检查给定 XML 文件中的所有元素和属性是否拼写正确。我的想法是使用(可能是映射?)将 XML 解组为某种数据结构"encoding/xml",然后明确检查每个元素和属性的拼写是否正确。

我如何将任何有效的 XML 文件解组为类似地图的数据结构,以检查提供的 XML 是否有效?

这是一个具体的例子:

假设我有以下 XML 文件,其中的元素和属性是使用特定模式定义的:

<?xml version="1.0" encoding="utf-8"?>

<servers version="1">
    <server>
        <model name="Cisco" type="modelA"></model>
        <serverName>Tokyo_VPN</serverName>
        <serverIP>127.0.0.1</serverIP>
    </server>
    <server>
        <model name="Dell" type="modelB"></model>
        <serverName>Moscow_VPN</serverName>
        <serverIP>127.0.0.2</serverIP>
    </server>
</servers>

由此,有效的元素和属性是:servers, server, model, name, type, serverName, 和serverIP.

这是一个包含拼写错误元素的 XML:

<?xml version="1.0" encoding="utf-8"?>

<servers version="1">
    <router>
        <modell nambe="Cisco" typre="modelA"></model>
        <serverNameR>Tokyo_VPN</serverNameR>
        <serverIP>127.0.0.1</serverIP>
    </router>
</servers>

请注意,这是有效的 XML,但不遵循我的架构。因此,如果我能弄清楚如何将任何 XML 合并为类似地图的东西,我就可以检查每个键是否有效。

标签: xmlgoschemaunmarshalling

解决方案


推荐阅读