例如,如果xml很简单:
<p>this is a test xml</p>
然后我可以使用这样的结构:
type Dummy struct {
XMLName xml.Name `xml:"p"`
Value string `xml:",chardata"`
}
但是如果xml有特殊字符,比如
<p>this is a test < xml & </p>
我使用相同的结构并且它导致错误,并且它似乎与struct无关,因为我使用了接口{}并且它导致错误相同。
我阅读了“encoding / xml”包的文档,但找不到正确的方法。
有谁知道怎么做?
答案 0 :(得分:0)
如果您查看错误(在golang playground上尝试),它会告诉您输入的内容不是有效的XML。
XML syntax error on line 1: expected element name after <
不允许文本包含普通&lt;或者&amp;这样,请参阅Character data section of the xml spec
答案 1 :(得分:0)
此XML格式不正确。它包含语法错误,因为字符&
具有特殊含义。如果您需要插入if作为符号本身,请使用&
进行更改。解析后,它将被替换回通常的&
。
同一规则适用于<
- 应将其替换为<
。
<p>this is a test <gt; xml & </p>
这是所有XML解析器和编码器的一般规则。任何其他XML系统都在等待类似的行为。