C# 读取缺少属性值的XML数据
我使用以下代码使用xml文件将数据导入数据库。为此,我正在读取xml文件,并将其放入数组对象中。对于空属性,将丢失行,并且无法为这些节点设置空字符串C# 读取缺少属性值的XML数据,c#,asp.net,.net,xml,C#,Asp.net,.net,Xml,我使用以下代码使用xml文件将数据导入数据库。为此,我正在读取xml文件,并将其放入数组对象中。对于空属性,将丢失行,并且无法为这些节点设置空字符串 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(path + "Data.xml"); XmlNodeList nodeList = xmlDoc.DocumentElement.SelectNodes("/DocumentElement/Profile"); //read XML data
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(path + "Data.xml");
XmlNodeList nodeList = xmlDoc.DocumentElement.SelectNodes("/DocumentElement/Profile");
//read XML data and ID is one of the column
object[] ID = XDocument.Load(path + "Data.xml").Descendants("ID").Select(element => Element.Value).ToArray();
现在ID元素有空值,当我读取它们时,带有空值的行被省略。如何为这些空节点设置空字符串值?您可以尝试此See null coalesce运算符
object[] ID = XDocument.Load(path + "Data.xml").Descendants("ID").Select(element => Element.Value ?? "").ToArray();
我建议您使用xml序列化器和反序列化器,我已经尝试过了,它没有向缺少的属性添加空字符串。我们在读取XML文件时必须设置空字符串。在问题中,您询问了如何处理ID属性的空值,但没有缺少ID属性。那么,您实际上想要处理什么,缺少ID属性的值还是缺少ID属性本身?缺少ID属性本身意味着标记不存在于XML文件中。我实际上想要处理缺少的属性。您需要一个有效的xsd来执行此类验证。这意味着,如果XSD说,min的ID为1,则必须在XML中存在,以将其视为VALID XML。有关更多信息,请参阅。