C# 更改foreach语句c中的xml属性#
我需要在数据库中保存XML属性值,如果选中复选框,则使用信息。如果选中复选框,则属性值为“TRUE”,否则为false。当我使用foreach语句时,最后一个枚举值通常被赋值 以下是我的代码部分:C# 更改foreach语句c中的xml属性#,c#,xml,C#,Xml,我需要在数据库中保存XML属性值,如果选中复选框,则使用信息。如果选中复选框,则属性值为“TRUE”,否则为false。当我使用foreach语句时,最后一个枚举值通常被赋值 以下是我的代码部分: XmlAttribute xmlAttribute = xmlDoc.CreateAttribute("BooleanValue"); foreach (string value in list) //list is a List<object> { XmlNode xmlNode
XmlAttribute xmlAttribute = xmlDoc.CreateAttribute("BooleanValue");
foreach (string value in list) //list is a List<object>
{
XmlNode xmlNode = xmlDoc.CreateNode(XmlNodeType.Element, "VALUE", "");
if (checkBox1.Checked ||
checkBox2.Checked ||
checkBox3.Checked)
xmlAttribute.Value = "TRUE";
if (!checkBox1.Checked ||
!checkBox2.Checked ||
!checkBox3.Checked)
xmlAttribute.Value = "FALSE";
xmlNode.Attributes.Append(xmlAttribute);
xmlNode.InnerText = val;
childNode.AppendChild(xmlNode);
}
xmldattribute xmldattribute=xmlDoc.CreateAttribute(“BooleanValue”);
foreach(列表中的字符串值)//列表是一个列表
{
XmlNode XmlNode=xmlDoc.CreateNode(XmlNodeType.Element,“VALUE”,为“”);
如果(复选框1.Checked | |
复选框2.选中||
复选框3.选中)
xmldattribute.Value=“TRUE”;
如果(!checkBox1.Checked | |
!checkBox2.Checked||
!checkBox3.已选中)
xmltattribute.Value=“FALSE”;
xmlNode.Attributes.Append(xmldattribute);
xmlNode.InnerText=val;
AppendChild(xmlNode);
}
当我运行我的应用程序时,我得到一个XML属性xmlAttribute“FALSE”值
我需要的是:
我需要具有以下XML:
<ROOT><NODE><VALUE ATTRIBUTE="TRUE">Value 1</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="TRUE">Value 2</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 3</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 4</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="TRUE">Value 5</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 6</VALUE></NODE>
</ROOT>
值1
价值2
价值3
价值4
价值5
价值6
我实际得到的是:
<ROOT><NODE><VALUE ATTRIBUTE="FALSE">Value 1</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 2</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 3</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 4</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 5</VALUE></NODE>
<NODE><VALUE ATTRIBUTE="FALSE">Value 6</VALUE></NODE>
</ROOT>
值1
价值2
价值3
价值4
价值5
价值6
因为在C#中,假值停留在foreach循环的最后一个位置
问题是:如何分配属性的正确值。谢谢我认为你的布尔逻辑是错误的。你现在有
If any are checked
mark True
If any are unchecked
mark False
我想说,您可能希望在第一个if
之后使用else
,而不是编写新条件
if (checkBox1.Checked ||
checkBox2.Checked ||
checkBox3.Checked)
xmlAttribute.Value = "TRUE";
if (!checkBox1.Checked ||
!checkBox2.Checked ||
!checkBox3.Checked)
xmlAttribute.Value = "FALSE";
因此,如果选中其中任何一个框,则为TRUE,如果未选中其中任何一个框,则将其覆盖为FALSE。i、 你最终得到了
if (checkBox1.Checked &&
checkBox2.Checked &&
checkBox3.Checked)
xmlAttribute.Value = "TRUE"
else
xmlAttribute.Value = "FALSE"
我猜测这不是您想要的修改后是否保存文件?否。XML保存到数据库字段我仍然认为这是一个布尔逻辑问题,如果您的任何复选框未选中,您将永远不会返回任何值,但返回false。如果您使用ELSE或elseif,则相同。我尝试使用“ELSE”而不是“if”语句。此外,我还尝试使用switch case语句。因此,问题仍然存在same@user1913479我认为你的问题陈述不清楚。你期待什么样的行为?你能给我们展示一个你想要的XML和你得到的XML的例子吗?