在Go中解析XML

时间:2016-09-20 14:53:15

标签: xml go

我有以下XML:

CASE 
WHEN Column REGEXP '^[0-9]' THEN Column = ''
END

我正在尝试将其解组为此结构:

<?xml version="1.0" encoding="utf-16"?>
<ArrayOfAnyType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <anyType xsi:type="xsd:dateTime">2016-09-14T13:58:30Z</anyType>
    <anyType xsi:type="xsd:decimal">1.2</anyType>
</ArrayOfAnyType>

没有抛出错误,但结果struct的值为空。我尝试了几个我在网上找到的例子,但我是Go的新手,所以我可能会遗漏一些明显的东西。

1 个答案:

答案 0 :(得分:4)

首先,您的文档声明它是以UTF-16编码的,这意味着您需要设置解码器的CharsetReader,或者将其删除并将文档解释为UTF-8。

其次,您的xsi:type,attr应该使用命名空间网址,因此它是http://www.w3.org/2001/XMLSchema-instance type,attr

考虑到这两点,你的事情可行:https://play.golang.org/p/Nu3wyEQ_dO