使用Schema XSD读取XML

时间:2013-07-01 18:38:21

标签: c# .net xml xsd

我在读取xml时遇到问题,创建的xml保存了我以前读过的相同模式。

当我读取一个DataTable,例如Person,它有一行时,DataTable读取该行,但是当所有列都不为null时,显示所有列为null。

我使用的代码如下

private DataSet LoadShema(string path)
{
    string _archivoXsd = System.AppDomain.CurrentDomain.BaseDirectory +"Scheme.xsd";//HERE IS WHERE THE .XSD FILE IS

    DataSet esquemaXSD = new DataSet();
    string archivoXml = path;
    FileStream FsXSD = new FileStream(_archivoXsd, FileMode.Open);
    FileStream FsXML = new FileStream(archivoXml, FileMode.Open);

    XmlTextReader xtrXSD = new XmlTextReader(FsXSD);
    try
    {
        esquemaXSD.ReadXmlSchema(xtrXSD);
        xtrXSD.Close();
        FsXSD.Close();

        XmlTextReader xtrXML = new XmlTextReader(FsXML);
        esquemaXSD.ReadXml(xtrXML);
        xtrXML.Close();
        FsXML.Close();
    }
    catch
    {
    }
    return esquemaXSD;
}

这是我在方案中加载xml的方法,然后我做的另一件事就是分配:

_dtPerson = new DataTable();
_dtPerson = esquemaXSD.Tables["Person"];

最后,我做的是以下内容:

if (_dtPerson.Rows.Count == 1)
{
    string name = Convert.ToString(_dtPerson.Rows[0]["Name"]); 
}

当我执行最后一个代码行时,会出现“无法将DBNull对象转换为其他类型”的异常。

0 个答案:

没有答案