使用XmlTextReader读取C#中的XML数据
本文关键字:XML 数据 中的 XmlTextReader 读取 使用 | 更新日期: 2023-09-27 18:00:22
我有这种类型的XML格式:
<?xml version="1.0" encoding="utf-8"?>
<root>
<descriptor>
<feature>5.12</feature>
<feature>0.0002827647</feature>
<feature>0.0147277</feature>
<feature>0.00037847</feature>
</descriptor>
</root>
使用MSDN的例子,我试着这样读:
Matrix<float> ObjectDescriptors = new Matrix<float>(200, 4);
XmlTextReader reader = new XmlTextReader("descriptors.xml");
int i = -1;
int ii = 0;
while (reader.Read())
{
if (reader.Name == "feature" && ii < 4)
{
String currStr = reader.Value;
ObjectDescriptors[i, ii] = Convert.ToSingle(currStr);
ii++;
if (ii == 4) ii = 0;
}
else if (reader.Name == "descriptor") i++;
}
我收到以下线路错误
AgrObjectDescriptors[i, ii] = Convert.ToSingle(currStr);
mscorlib.dll中发生"System.FormatException"类型的未处理异常附加信息:输入字符串的格式不正确。
似乎正在检测节点"功能"(reader={Element,Name="feature"}),但其内容为空(")
使用System.Xml;包括
如果有人告诉我为什么会发生这个错误,那就太好了!非常感谢。
reader.Read
将遍历XML的每个部分,并且元素与其中的文本不同。
因此,一旦你找到了你要找的元素,你就必须阅读里面的文本。
尝试更换:
String currStr = reader.Value;
带有:
String currStr = reader.ReadString();
替换为
ObjectDescriptors[i, ii] = reader.ReadElementContentAsFloat();
解决了问题。问题结束了。