XmlReader';文本';使用ReadElementContentAsString读取时是无效的XmlN
本文关键字:无效 XmlN ReadElementContentAsString 文本 使用 XmlReader 读取 | 更新日期: 2023-09-27 18:20:22
我正在尝试读取以下XML文件:
<?xml version="1.0" encoding="utf-8"?>
<recipe>
<name>5 SE</name>
<timecreated>02.11.2015 13:13:36</timecreated>
<min>90</min>
<max>130</max>
<range>40</range>
<avg>110</avg>
<stddev>40</stddev>
</recipe>
我的代码如下:
XmlReader reader = XmlReader.Create("data.xml");
reader.ReadStartElement("recipe");
reader.ReadStartElement("name");
String content = reader.ReadElementContentAsString("name", "");´
在最后一行,它抛出了一个异常:
中发生类型为"System.Xml.XmlException"的未经处理的异常System.Xml.dll
其他信息:"Text"是无效的XmlNodeType。第3行,位置9。
为什么"文本"是无效的节点类型?ReadElementContentAsString听起来可以很容易地将"Text"作为字符串返回。
ReadElementContentAsString
一起读取元素及其内容。因此,您不应该使用<name>
节点,或者只使用ReadContentAsString
。
XmlReader reader = XmlReader.Create("data.xml", new XmlReaderSettings { IgnoreWhitespace = true });
reader.ReadStartElement("recipe");
// reader.ReadStartElement("name"); - now you will be at the <name> element instead of "5 SE" text
String content = reader.ReadElementContentAsString("name", "");