C# 从xml读取节点值

C# 从xml读取节点值,c#,xml,c#-3.0,C#,Xml,C# 3.0,我有一个XML文件,格式是 <?xml version="1.0" encoding="utf-8"?> <ROWDATA> <ROW ORGCODE="00001" BRANCHCODE="00002"/> <ROW ORGCODE="00001" BRANCHCODE="00003"/> <ROW ORGCODE="00001" BRANCHCODE="00004"/> <<ROW ORGCODE="00001" BRA

我有一个XML文件,格式是

<?xml version="1.0" encoding="utf-8"?>
<ROWDATA>
<ROW ORGCODE="00001" BRANCHCODE="00002"/>
<ROW ORGCODE="00001" BRANCHCODE="00003"/>
<ROW ORGCODE="00001" BRANCHCODE="00004"/>
<<ROW ORGCODE="00001" BRANCHCODE="00005"/>
</ROWDATA>
正确的XML

<?xml version="1.0" encoding="UTF-8"?>
<ROWDATA>
<ROW ORGCODE="00001" BRANCHCODE="00002"/>
<ROW ORGCODE="00001" BRANCHCODE="00003"/>
<ROW ORGCODE="00001" BRANCHCODE="00004"/>
<ROW ORGCODE="00001" BRANCHCODE="00005"/>
</ROWDATA>
代码应该类似于

ROWDATA rowdata;
if (xmlstring.Deserialize(out rowdata))
{
    var element1 = rowdata.ROW[0];
    var element3 = rowdata.ROW[2];
    //do something with elements
}
要反序列化,可以添加字符串扩展方法,如:

 public static bool Deserialize<T>(this String str, out T item)
    {
        item = default(T);
        try
        {
            using (var reader = XmlReader.Create(new StringReader(str)))
            {
                item = (T)new XmlSerializer(typeof(T)).Deserialize(reader);
            }
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
publicstaticbool反序列化(此字符串str,out T项)
{
项目=默认值(T);
尝试
{
使用(var reader=XmlReader.Create(newstringreader(str)))
{
item=(T)新的XmlSerializer(typeof(T))。反序列化(reader);
}
返回true;
}
捕获(例外情况除外)
{
返回false;
}
}
ROWDATA rowdata;
if (xmlstring.Deserialize(out rowdata))
{
    var element1 = rowdata.ROW[0];
    var element3 = rowdata.ROW[2];
    //do something with elements
}
 public static bool Deserialize<T>(this String str, out T item)
    {
        item = default(T);
        try
        {
            using (var reader = XmlReader.Create(new StringReader(str)))
            {
                item = (T)new XmlSerializer(typeof(T)).Deserialize(reader);
            }
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }