是否存在某种类型的特殊编码行为,这种行为发生在非常大的元素的结束标记上?
我有一个像这样的Golang函数(简化):
if(gender==1 || gender==2)
{
if (gender == 1)
r = 0.73D;
else if (gender == 2)
r = 0.66D;
alcoholAbsored = (3.701*D)/(weight*r);
// do something
}
else
{
System.out.println("Please enter 1 or 2 for male or female.");
}
对于具有“合理”大小的文本元素的xml文件,它会执行它应该执行的操作。但是,如果我遇到这样的事情:
xmlDec := xml.NewReader(xmlFile)
if tok, err := xmlDec.Token(); err != nil {
switch case := tok.(type) {
case xml.StartElement:
//do things
case xml.CharData:
//do things
case xml.EndElement:
//do things
default:
//do things
}
}
golang xml解码器无法将结束<?xml version="1.0" encoding="UTF-8"?>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">1,1 1,2 1,3 (continues for hundreds of points)</gml:coordinates>
</gml:LinearRing>
标记识别为EndElement。当然,这可以在任何元素类型上重现,而不仅仅是gml。这是Golang的xml解码器的一个已知问题,还是有些问题?我注意到在Vim上,如果一个xml文件有一个非常长的元素文本,Vim似乎不会将它识别为结束标记,颜色编码明智。