为多个子项验证具有相同标记名称的XML

时间:2015-03-05 06:58:06

标签: c# xml validation dataset

我想在名为Default value.Ex

的Tag下获取多个值
<DefaultValue>One </DefaultValue>
<DefaultValue>two</DefaultValue>
<DefaultValue>three</DefaultValue>

我想在一次验证中验证所有三个值。这意味着我的字符串可能包含值One,Two,Three中的任何一个..它应该验证它是否包含任何一个

 <?xml version="1.0" encoding="utf-8" ?>
 <ValidationList>
     <Validation>
         <FieldType>Auto Number</FieldType>
         <DataColumn>5</DataColumn>
         <ErrorMessage>Value cannot be null</ErrorMessage>
     </Validation>
     <Validation>
         <FieldType>Date Time</FieldType>
         <DataColumn>15</DataColumn>
         <ErrorMessage>Value cannot be null</ErrorMessage>
         <DefaultValues>kj</DefaultValues>
     </Validation>
</ValidationList>

我目前的代码是:

GetFieldTypeRow = ds.Tables["Validation"].Select("FieldType='"  + xFieldTypeCell.Value2 + "'");

if (GetFieldTypeRow.Length == 1 )
{
     iFieldValueCol = Convert.ToInt32(GetFieldTypeRow[0 ["Default Values"].ToString());

     if(xFieldValueCell.Value2== "A")
     {
         DataRow ResRow = ResultDt.NewRow();
         ResRow["WorkSheetName"] = MySheet.Name.ToString();
         ResRow["DataFieldType"] = xFieldTypeCell.Value2;
         ResRow["AtRow"] = xFieldValueCell.Row.ToString();
         ResRow["ErrorMessage"] = "Finished";
         ResultDt.Rows.Add(ResRow);
      }

我已将XML数据存储在数据集中,每次使用单行标记名称访问数据集。我的表包含四列。

Datafield,Datacolumn,Error MEsasge,默认值。

我想立刻检查默认值标签下的三个值我该怎么办?

1 个答案:

答案 0 :(得分:0)

仍然没有完全满意这个问题,但让我试一试。

首先我要指出,默认值通常是单值。 此值通常在您添加新行时自动设置,或者在您不为该字段指定值时设置为该值。所以你需要一个名为ValidValues的列。

现在,如果要检查此列中的每个值:

string[] validValues = /*whereever you get the field from*/.Split('|');
bool valid = validValues.Contains(/*whatever value you want to check*/);