在用C#写Xml解析时,抛出一个错误: System.Xml.XmlException: “Element”是无效的 XmlNodeType。在网上找了很久,没有结果,决定自己来找原因。
我在读取下面这样的xml格式的文件时,我想读取Text里面的文本,然后我就使用xml解析:
Hello Emma!! error
代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Xml.Linq;using System.Text;using System.Xml;using System.IO;using System.IO.Compression;using System.Collections;using System.Text.RegularExpressions; static void Main(string[] args) { XmlTextReader reader = new XmlTextReader(filePath); while (reader.Read()) { switch (reader.Name) { case "Abstract": XmlReader subtreeReader1 = reader.ReadSubtree(); while (subtreeReader1.ReadToFollowing("Text")) { abstractContent += subtreeReader1.ReadContentAsString(); hasAbstract = true; } subtreeReader1.Close(); break;}}
然后就报错误: System.Xml.XmlException: “Element”是无效的 XmlNodeType。
我去查看了,错误是由于<Text>里面还包含<p>这样的elment,所以没有办法转成string。把代码改为下面的就可以了。
using System;using System.Collections.Generic;using System.Linq;using System.Xml.Linq;using System.Text;using System.Xml;using System.IO;using System.IO.Compression;using System.Collections;using System.Text.RegularExpressions; static void Main(string[] args) { XmlTextReader reader = new XmlTextReader(filePath); while (reader.Read()) { switch (reader.Name) { case "Abstract": XmlReader subtreeReader1 = reader.ReadSubtree(); while (subtreeReader1.ReadToFollowing("Text")) { abstractContent += subtreeReader1.ReadString(); hasAbstract = true; } subtreeReader1.Close(); break;}}