大元素的XML结束标记(Golang)

时间:2016-09-21 03:33:22

标签: xml go character-encoding xml-parsing

是否存在某种类型的特殊编码行为,这种行为发生在非常大的元素的结束标记上?

我有一个像这样的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似乎不会将它识别为结束标记,颜色编码明智。

0 个答案:

没有答案