我想跳过空的id父节点,并在这种XML文档中移动到不空的id父节点。目前我的程序使用XmlTextReader来读取和处理这个XML。但是某些时候记录id可能是空的,那个时候我想跳过这个记录的父节点,读者应该移动到下一个节点而不读取那个空的id父节点。伙计你有什么想法吗? 请帮帮我!!!
`<record id="">
<record><data></data></record>
<record><data></data></record>
</record>
<record id="###">
<record><data></data></record>
<record><data></data></record>
</record>
`
答案 0 :(得分:0)
我喜欢使用XmlReader和Xml Linq的组合:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XmlReader reader = XmlReader.Create(FILENAME);
while (!reader.EOF)
{
if (reader.Name != "record")
{
reader.ReadToFollowing("record");
}
if (!reader.EOF)
{
XElement record = (XElement)XElement.ReadFrom(reader);
string id = (string)record.Attribute("id");
if (id.Length > 0)
{
Console.WriteLine("id = '{0}'", id.ToString());
}
}
}
Console.ReadLine();
}
}
}