xml - 使用 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 合并为类似地图的东西,我就可以检查每个键是否有效。