我在读取“ 111e1”之类的xml值作为字符串类型时遇到问题。我正在尝试使用标准C#XmlReader从如下所示的xml创建xsd模式:
$mysqli->autocommit(true);
源xml文件:
`
XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.XmlResolver = null;
using (XmlReader reader = XmlReader.Create(sourcexmlpath, readerSettings))
{
XmlSchemaSet schemaSet = new XmlSchemaSet();
XmlSchemaInference schema = new XmlSchemaInference();
schemaSet = schema.InferSchema(reader);
using (TextWriter writer = File.CreateText(xsdpath))
{
foreach (XmlSchema s in schemaSet.Schemas())
{
s.Write(writer);
}
writer.Close();
}
reader.Close();
}
`
我得到了float类型:
`<?xml version="1.0" encoding="utf-8"?>
<Document>
<example>
<testvalue>34551E10</testvalue>
</example>
</Document>
`
如果值由数字组成,并且它们之间仅存在一个“ e”字母(其他字母的问题就会消失),则存在问题,例如: 1e111、11e11、111e1 但是如果字母开头和结尾都像e11111、11111e这样,我们就不会出现此问题。
如何防止将值读取为浮点型?有可能吗?